アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>

A 回答 (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);
 }
 }

この回答への補足

>下記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>

補足日時:2010/06/22 16:45
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

自分の力では全く想像もつかず、大変助かりました。

検証してみます。

本当にどうもありがとうございました。

お礼日時:2010/06/22 16:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!