• 締切済み

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

以前、こちらの質問サイトで質問した際に回答を頂いた内容で、 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が使えないので、 他の方法を教えていただきたく

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>因みに、どんな構文になるのでしょうか ANo1に書いたつもりなんですけれど・・・・? 要素が変数objに格納されているとし、属性名が"property"とすれば、その内容が  obj.property とか obj["property"] で取得あるいは設定(属性値が読み取り専用でないことが条件)可能という意味です。

mkhkck
質問者

補足

<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].elementAttribute("content",meta[i].elementAttribute("keyword")+","+keyword);  } } setEventListener(window, 'load', html_load); //]]> </script> という事でしょうか?

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

回答がないみたいなので… EC-CUBEの環境はまったく知りませんが、通常のDOMオブジェクトの場合、その属性は elment.attribute や element["attribute"] などでも取得できる場合がほとんどですが、それでもダメなのでしょうか?

mkhkck
質問者

補足

やってみないとわからないとは思いますが、因みに、どんな構文になるのでしょうか? よろしくお願い致します。

関連するQ&A

  • 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>

  • 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> 自分ではいったいなにが悪いのか分かりません。 どのたかお分かりになるかたいましたらご教授していただけませんでしょうか。 お願いします。

  • 外部ファイルでクエリを実行したい

    「クエリを実行している間にローディング画像を表示する」という処理をしたいです。 外部ファイルの[load.php]内で「データベース接続→mysql_queryを実行する」という処理を 行い、[index.php]で結果を表示したいのですが、うまくいきません。 ※load.phpの中身をindex.php内に書いた場合は成功する ※load.phpの読み込み自体はできている。 [index.php] <script type="text/javascript"> $(function(){ $("#sample").load("load.php"); }) </script> <div id=sample> <div id="loader"><img src="edit/img/loader.gif" width="24" height="24" alt="Loading..." /></div> <?php echo $num; ?> </div> [load.php] <?php $conn = mysql_connect("localhost","DB","pass",true); mysql_query("SET NAMES utf8") or die("can not SET NAMES utf8"); mysql_select_db('DB',$conn); $sql = "SELECT ~" $result = mysql_query($sql) or die(mysql_error()); $num = mysql_num_rows($result); ?>

    • ベストアンサー
    • PHP
  • 関数内で処理した内容を計算式で使用するには?

    function dbcount($table,$category) { require_once'DB.php'; $username = "abc"; $password = "abc"; $host = "abc"; $database = "abc"; $db = DB::connect("mysql://$username:$password@$host/$database"); $sql = "select count(*) from $table where $id;"; $result = $db->query($sql); while($row = $result->fetchRow()){ echo $row[0]; } } $kazu = 5; if ( $kazu >= db("table","key=1") ) { echo "真"; } else { echo "偽"; } ――――――――――――――――――――――――― といった感じのプログラムなのですが、if文が正常に処理されずに困っています。 関数dbを実行すると60が帰ってくるので、本来ならば「偽」と表示され、るはずなのですが、何故か「真」が表示され、文字の左側には60が表示されています。 60は関数を使用した結果なのですが、ここに表示されているという事は、条件式の数字として認識されていないという事でしょうか? だとすれば、どのようにすれば正常に計算されるのでしょうか?

    • ベストアンサー
    • PHP
  • (MySQLで修正スクリプトがうまくいかず困っています。

    最近MySQLをはじめました、まだ初心者の者です。 MySQLデータベースで、修正用のスクリプトがうまく起動いたしません。自分なりに色々書籍やネット検索致しましたがどこが間違っているのか見出せません。 お手数ですが、どうか指南お願い致します。 リンクから呼び出すスクリプトと削除スクリプトの二点です。 -------------------(始)ここから明細スクリプト(始)--------------- <?php extract($_GET); mysql_connect('localhost','root','xxxx'); mysql_select_db('xxxx'); $sql = "select * from xxxx where id = '{$id}'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "検索データが見つかりませんでした。"; exit; } else { while($row = mysql_fetch_array($result)){ echo "<h2> " , $row["title"] , "</h2>"; echo "<p><font size=\"-2\">#", $row["id"] ," ●",$row["tourokubi"] ,"</font></p>\n"; echo "<p><div class=\"hon\">", nl2br($row["honbun"]), "</div></p>"; echo "<div class=\"key\">keywords: ", nl2br($row["keyword"]), "</div>"; $row["id"]; echo "</p>"; echo "</p>"; echo "<a href=\"correct.php?id="; echo $row["id"]; echo "\">[修正する]</a>"; echo "<a href=\"j_sakujo1.php?id="; echo $row["id"]; echo "\">[削除する]</a><hr>"; } } ?> ------------------------(終)ここまで(終)------------------------ -------------------(始)ここから削除スクリプト(始)--------------- <?php extract($_POST); extract($_GET); mysql_connect('localhost','root','xxxxx'); mysql_select_db('xxxxx'); //修正レコード if($honbun<>""){ $sql = "update xxxxx set title='$title', honbun='$honbun', keyword='$keyword' where id = $id"; mysql_query($sql); echo "レコードの修正が完了しました"; exit; } // 修正ルーチン $sql = "select * from xxxxx where id = $id"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)){ $tourokubi = $row["tourokubi"]; $title = $row["title"]; $honbun = $row["honbun"]; $keyword = $row["keyword"]; } echo "<form action=\"correct.php\" method=\"post\" >\n"; echo "<p>・日付<br>\n"; echo $tourokubi, "</p>\n"; echo "<p>・タイトル<br>\n"; echo "<input type=\"text\" name=\"title\" value=\"",$title, "\"size=60 ></p>\n"; echo "<p>・本文<br>\n"; echo "<textarea name=\"honbun\" rows=20 cols=70 >\n"; echo $honbun; echo "</textarea></p>\n"; echo "<p>・キーワード(スペース区切りで列記)<br>\n"; echo "<textarea name=\"keyword\" rows=2 cols=70 >\n"; echo $keyword; echo "</textarea></p>\n"; echo "<p><input type=\"hidden\" name=\"i\" value=\"", $i, "\">  "; echo "<p><input type=\"submit\" value=\"修正\">  "; echo "<input type=\"reset\" value=\"クリア\"></p>\n"; echo "</form>\n"; ?> -------------------(終)ここまで(終)---------------------- 修正ボタンを押すと、修正しました。と表示されるのですが、 なぜかデータは更新されておりません。 自分なりに調べましたが、原因がどうしても分かりません。 ご指南よろしくお願い致します。

  • 二つのテーブルの結合

    はじめまして。 複数のテーブルの扱いでいきずまっております。 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 ログインシステムについて

    お世話になります 現在ローカルで下記PHPのテストを行っています PHP初心者の為、セキュリティ面並びに不具合が心配で書き込みさせて頂きました 恐れ入りますがおかしな点がないかチェックして頂けませんでしょうか 宜しくお願いいたします データベースのバージョンはMySQL 5.5です ***************************************** <?php session_start(); $error_message = ""; if (isset($_POST["login"])) { $id = htmlspecialchars($_POST['id']); $password = htmlspecialchars(base64_encode(pack('H*', sha1($_POST['password'])))); $_SESSION['id'] = $_POST['id']; $_SESSION['password'] = $_POST['password']; $db = mysql_connect("***","***","***"); if (!$db) { die('接続失敗です。'.mysql_error()); } mysql_set_charset("utf8"); $db_selected = mysql_select_db("***", $db); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } $result = mysql_query("SELECT * FROM ***"); if (!$result) { die('クエリーが失敗しました。'.mysql_error()); } function x($result) { return mysql_real_escape_string($result); } while ($row = mysql_fetch_assoc($result)) { if($id == $row['id'] && $password == $row['password']){ header("Location:./instance.php"); } } $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } session_destroy(); $error_message = "ユーザ名もしくはパスワードが違っています。"; } ?> <html> <head><title>ログイン</title> <meta http-equiv=Content-Type content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="style.css" media="screen" /> </head> <body> <?php if ($error_message) { print '<font color="red">'.$error_message.'</font>'; } ?> <form action="login.php" method="post"> ID:<input type="text" name="id"><br /> PASS:<input type="password" name="password"><br /> <input type="submit" name=login value="認証"> </form> </body> </html>

    • 締切済み
    • PHP
  • 関数(list)の戻り値を他の関数(base)の引数に渡したいんですが

    関数(list)の戻り値を他の関数(base)の引数に渡したいんですが、どうすればいいでしょうか? /****list.php****/ <?php function list($id){ // DB接続 open(); $sql = "SELECT * FROM table WHERE id = $id"; $result = mysql_query($sql); // 実行結果判定 if(!$result){ $res = 9; }else{ while ($row = mysql_fetch_assoc($result)){ $moji .= $row['name']; $moji .= $row['mail']; } echo $moji; $res = 0; } return $res; } ?> /****main.php****/ <?php ・ ・ list($id); ・ ↓$err_cdにlistの戻り値を入れ、$err_msgには戻り値が0なら「正常終了」,9なら「SQLエラー」などを入れるようにしたい。 base($err_cd,$err_msg); ・ ?>

    • ベストアンサー
    • PHP
  • 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
  • 同じサーバーで、異なるデータベースを同時に開くことはできますか?

    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