• 締切済み

document.titleというものがありますが、titleタグに付

document.titleというものがありますが、titleタグに付ける名前を定義できると思うのですけど、 metaのkeywordsを定義するものはあるのでしょうか。 以下のようなtitleを付ける為の仕組みがあります。 そのscript箇所に、 document.title = "<!--{$title_text}-->" + "|" + document.title; と同じような仕組みで、keywordsを定義する事はできませんでしょうか? どなたかご教示いただけると幸いです。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; if ($db_connect) { $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0) { $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func) { if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load() { document.title = "<!--{$title_text}-->" + "|" + document.title; } setEventListener(window, 'load', html_load); //]]> </script>

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

下記javascriptの関数を作って、PHPでキーワードを $keywordにセットすれば、  function html_load(){   document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write($keyword);  } で出来るでしょう。  function keyword_write(keyword){  var meta=document.getElementsByTagName("meta");  for(var i=0;i<meta.length;i++){  if(meta[i].name=="keywords")  meta[i].setAttribute("content",meta[i].getAttribute("keyword")+","+keyword);  }  }

mkhkck
質問者

お礼

ご回答ありがとうございます。 自分の力では全く想像もつかず、大変助かりました。 検証してみます。 本当にどうもありがとうございました。

mkhkck
質問者

補足

>下記javascriptの関数を作って、PHPでキーワードを >$keywordにセットすれば、 の箇所について、追記しました。 //←追記 と書きます。 しかし、この書き方では表示ができなかったので、 手とり足とり恐縮ですが、どこが問題か教えていただけませんでしょうか? よろしくお願い致します。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; $keyword = '';  //←追記 if ($db_connect) { $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0) { $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); $this->assign("keyword", $title_text);  //←追記 <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func) { if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load() { document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write($keyword); } function keyword_write(keyword){  var meta=document.getElementsByTagName("meta");  for(var i=0;i<meta.length;i++){  if(meta[i].name=="keywords")   meta[i].setAttribute("content",meta[i].getAttribute("keyword")+","+keyword);  } } setEventListener(window, 'load', html_load); //]]> </script>

関連するQ&A

  • 以前、こちらの質問サイトで質問した際に回答を頂いた内容で、

    以前、こちらの質問サイトで質問した際に回答を頂いた内容で、 Smartyの .tpl ファイルなどに、<?php?>。。。<?/php?>を書き、Javascriptで表示させるというやり方がありました。 回答は別の所から、案を頂き、 function html_load(){ document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write($keyword); } を function html_load(){ document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write("<!--{$keyword}-->"); } としました。 以下、全文。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; $keyword = '';  //←追記 if ($db_connect){ $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0){ $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); $this->assign("keyword", $title_text);  //←追記 <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func){ if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load(){ document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write("<!--{$keyword}-->"); } function keyword_write(keyword){  var meta=document.getElementsByTagName("meta");  for(var i=0;i<meta.length;i++){  if(meta[i].name=="keywords")   meta[i].setAttribute("content",meta[i].getAttribute("keyword")+","+keyword);  } } setEventListener(window, 'load', html_load); //]]> </script> そこで、EC-CUBEの環境で、setAttribute、getAttributeが使えないので、 他の方法を教えていただきたく

  • 同じサーバーで、異なるデータベースを同時に開くことはできますか?

    1.タイトルの通り、同時に開くことができますでしょうか? 日本PHPユーザー会ホームページでは以下の方法でできるとの回答があります。 $con1 = mysql_connect(localhost, user_id , pass); $con2 = mysql_connect(localhost, user_id , pass); mysql_select_db("db1",$con1); mysql_select_db("db2",$con2); ======================================== db1 user_table user_id(int),user_name(var) ========================================== db2 main_table main_id(int),user_id(int) ======================================== $sql_user_name = "SELECT user_name FROM user"; $result_user = mysql_query($sql_user_name,$con1); $row_user = mysql_fetch_array($result_user); echo $row_user[user_name]; のようにやっても mysql_fetch_array()がでます。 mysql_queryは最後の接続を活かすとなっているのでこの部分の書き方を教えてください。 2.できたとしてリレーションを行うことができますでしょうか? つまり $sql_user_name = "SELECT user_name FROM db1.user_table,db2.main_table WHERE db1.user_table.user_id = db2.main_table.user_id" というようなことはできますでしょうか? 長文で申し訳ありませんが、どうかよろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLのBLOBにバイナリで格納した画像を表示

    現在PHPを勉強しはじめた初心者です。今 MYSQLのデータベースを利用してUPLOADした画像を表示させたいと思っております。 そこでMYSQLのBLOBに画像を保存出来まではできたのですが、 そこから表示させる方法がどうしても分かりません。。 こちらが今やっていますスクリプトになります。 <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。 </p> <?php echo <img src=”image_display.php?id=1”> ?> <?php $conn=mysql_connect('localhost','aaa','pass'); // DB選択 mysql_select_db(”alpha”); // SQL問合せ // このphpを呼び出す際、idを指定 $sql = select * from beta where(id=$_GET[id]); $result = mysql_query($sql); // 問合せ結果を配列にセット $row = mysql_fetch_array($result); echo $row[1]; // テーブルの2列目のカラムを取得 ?> </body> </html> 自分ではいったいなにが悪いのか分かりません。 どのたかお分かりになるかたいましたらご教授していただけませんでしょうか。 お願いします。

  • PHP初心者です。

    PHP初心者です。 index.php から外部関数に飛び、文字列を返してきてindex.phpで それらの文字列を表示するプログラムはどのように書けばいいんでしょうか? /* ---func1.php--- */ function func1($aa,$bb){ $moji=""; $moji.= "ああ".$aa."ああ"; $moji.= "いい".$bb."いい"; //$mojiの内容を返す } /* ---func2.php--- */ function func2($cc,$dd){ // DBからデータを取得して $sql = "SELECT name, add, mail, tel FROM tbl_a WHERE cc = ".$cc; $moji_db = ""; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)){ $moji_db .= $row['name']; $moji_db .= $row['add']; $moji_db .= $row['mail']; $moji_db .= $row['tel']; } //$moji_dbを返す } index.php で $mojiと$moji_dbを出力する 以上のようなプログラムなんですけど、 func1,2の戻り値の書き方、index.phpでの受け取り方がわからないので教えてください。

    • ベストアンサー
    • PHP
  • 異なるデータベース間のリレーション

    phpmyadmin上の異なるデータベース間のテーブルでリレーションをかけたいのですが、うまくいきません。 new_linkフラグをtrueにすることで異なるデータベースを開くところまではできました。 アドバイスいただけないでしょうか。 ※DB1の中にtable1が、DB2の中にtable2がある //失敗する $con1 = mysql_connect("localhost",username,pass); mysql_select_db('DB1',$con1); $con2 = mysql_connect("localhost",username,pass,true); mysql_select_db('DB2',$con2); $sql = "select * from table1,table2 where table1.id = table2.id"; $result = mysql_query($sql) or die(mysql_error()); メッセージ⇒Table 'DB2.table1' doesn't exist //これは成功する $con1 = mysql_connect("localhost",username,pass); mysql_select_db('DB1',$con1); $con2 = mysql_connect("localhost",username,pass,true); mysql_select_db('DB2',$con2); $sql1 = "select * from table1"; $result1 = mysql_query($sql,$con1) or die(mysql_error()); $sql2 = "select * from table2"; $result2 = mysql_query($sql2,$con2) or die(mysql_error());

    • ベストアンサー
    • MySQL
  • PHP データベースから画像出力

    現在PHPを習い始めたのですが、分からない所がありましたので ご質問をさせて頂きました。 質問の内容ですが、ファイルをBLOB形式にてMYSQLにアップロードをした のですが、そのあと格納された情報をどうしても取り出すことが出来ません。 こちらがそのスクリプトになります。 またmysqlのテーブルですがこのようになっています。 表示をさせようと試みたさいエラーメッセージとして、 mysql_fetch_object(): supplied argument is not a valid MySQL result resource in  と表示されます。 var_dumpで調べてみたのですが、$sql文が間違っているのではと思っているのですが定かではありません。 ID int インデックス MIME varchar MIMEタイプ Filename varchar ファイル名 Dbinary longbolb バイナリ本体 //echo1.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>無題ドキュメント</title> </head> <body> <?php //MySQLサーバに接続 if (!$int_connect = @mysql_connect('localhost','aaa','password')) { die("can't connect mysql server."); } //データベースに接続 if (!@mysql_select_db("test", $int_connect)) { die("can't use selected database."); } $sql = "select * from stddoc where(id=$_GET[id])"; var_dump($sql); $result = mysql_query($sql); $row = mysql_fetch_object($result); //var_dump( $row ); echo $row[3]; ?> </body> </html> //またこちらが表示しようとしているスクリプトです。 echoo2.php <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。 </p> <?php echo "<img src=\"echo1.php?id=1\">" ?> </body> </html> どなたかお分かりになるかたがいましたら是非ご教授して頂けませんでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPからMySQL・異なるDBにコピー

    PHPからMySQL・異なるDBに接続し同じ構造のテーブルのデータをコピーすることは可能ですか? 以下を実行するとクエリが実行されず「コピーできません」が表示されてしまいます。 どのようにすればコピーできるか教えてください。 $connect1 = mysql_connect("localhost", "user1", "pass1") ; mysql_select_db("db1", $connect1); //db1内にtable1 $connect2 = mysql_connect("localhost", "user2", "pass2") ; mysql_select_db("db2", $connect2); //db2.内にtable2 $sql = "INSERT INTO `db1` . `table1` SELECT * FROM `db2` .`table2`;"; $result = mysql_query($sql, $connect1)or die("コピーできません"); //$result内「$connect1」でも「$connect2」結果は同じです。 //table1とtable2の構造は同じです。

    • ベストアンサー
    • PHP
  • PHPでMySQLテーブルロック一覧取得

    PHPでMySQLテーブルロックされている一覧を取得したいですがどのようにすれば良いかご教授願います。 Web検索で調べるとロック状態はmysql_list_processesや、show processlistでも試してみましたが、思うような結果は得られませんでした。正常には動作していますが、欲しいデータが取り出せないですす。。。 単純に、現在ロックしているテーブル名(レコードロックは不要です。)を一覧で出力させることはできないのでしょうか? PHPから実施できるやり方をご教授頂けると幸いです。 -------Test Program()--------- <?php $link = mysql_connect('localhost', 'login_id', 'login_pass'); mysql_select_db('db_name'); mysql_query('LOCK TABLES table1 WRITE'); mysql_query('INSERT INTO table1 SET field1 = "test", field2 = "1"'); //$result = mysql_list_processes($link); 以下のSQL文とも入れ替えて試しました。 $result = mysql_query('show processlist'); while ($row = mysql_fetch_assoc($result)){ printf("%s %s %s %s %s %s %s %s\n", $row["Id"], $row["User"], $row["Host"], $row["db"], $row["Command"], $row["Time"] , $row["State"], $row["Info"]); } mysql_free_result($result); mysql_query('UNLOCK TABLES'); ?>

    • ベストアンサー
    • MySQL
  • 二つのテーブルの結合

    はじめまして。 複数のテーブルの扱いでいきずまっております。 taskには案件のデータが入ってます。 task_userにはそれに携わるユーザー名(一人でない)が入っています。 titleでソートして出力したい場合、どうしたらいいのでしょうか? 現状のままでは、task_userのnumでソートしています。 $sql = "select * from task_user where user_id ='3' order by num desc; $result = mysql_query($sql); while ($row = mysql_fetch_object($result)) { $task_id = $row->task_id; $sql_task = "select * from task where num ='" . $task_id . "'"; $result_task = mysql_query($sql_task); $row_task = mysql_fetch_object($result_task); $title = $row_task->title; } mySQL4.0を使っています。 できればバージョンをあげずに解決したいと思っています。 ご教授いただければ幸いです。

  • PHP+MySQLを実行するとエラーが出てパソコンがフリーズする。

    次のphpを実行すると、求めるデータは表示出来ますが、その下に引き続き Warnning:mysql_result()[function.mysql_result]: Unable to jump to row 7 on MySQL result index 3 in C:****test.php on line 10; 同文で on line 11; 以下,Unable to jump toの 「 row 7」 が row 8 row 9・・・・・・ と延々と続き、パソコンがフリーズしてしまいます。 実行したphp文。 <?php $con=mysql_connect(localhost,"root","root"); $selectdb=mysql_select_db("sales",$con); $sql="select * from sample"; $result=mysql_query($sql,$con); $row=mysql_fetch_array($result); $price=mysql_result($result,$i,1); $volume=mysql_result($result,$i,2); echo("$price:$volume<br>\n"); mysql_close($con); ?> 参考書を調べて、いろいろ変えてみましたが、分かりません。 幼稚なphp文で恐縮ですが、悪いところをご指摘頂ければ有難いです。

    • ベストアンサー
    • PHP