JavaScriptからPHP呼び出しHTML出力で…

解決済みの質問

JavaScriptからPHP呼び出しHTML出力で…

現在phpにてブログのカテゴリリストを取得して、投稿ページ
(HTML)上にカテゴリのプルダウンを表示しようと試みている
のですが、JS(JavaScript)からPHPを呼び出しHTML上に出力する
際にPHPファイルにincludeがあるとjavascriptエラーとなって
しまいます。

ちなみに参考にしたホームページはこちらです。
http://www.res-system.com/item/383

PHPソース(init.php)↓
<?php
include_once('entry.php'); // ←エラーの箇所

// ヘッダ
header("Content-Type: application/x-javascript; charset=UTF-8");

// インスタンス生成
$obj = new XMLComm();

// 初期設定
$obj->XMLComm();

// カテゴリ取得
echo "document.write(\"$obj->getCategories()\")";
?>

HTMLソース(entry.html)↓
<HTML>
<HEAD>
<TITLE>BLOG ENTRY</TITLE>
</HEAD>
<BODY>
ブログエントリー</br>
<script type="text/javascript" src="/init.php"></script>
</BODY>
</HTML>

ちなみに、include等が無い状態で任意の文字で試したのですが
こちらはきちんと表示されます。

javascriptでincludeなど呼び出しているphpを起動することは
できないのでしょうか…

解決策、別案などありましたらご教授いただけたら幸いです。
phpを始めたばかりの初心者で、質問自体おかしい点があるかも
しれませんが、、どうぞよろしくお願いいたします。

投稿日時 - 2007-07-28 04:15:14

QNo.3205950

困ってます

質問者が選んだベストアンサー

echo "document.write(\" {$obj->getCategories()} \")";
文字列内でオブジェクトの参照を利用する時は、{}で括りましょう。
http://php.s3.to/man/language.types.string.html#language.types.string.parsing.complex
でなければ、echo 文を使うなら、分割引数にする。
echo 'document.write("', $obj->getCategories(), '")';

参考URL:http://php.s3.to/man/language.types.string.html#language.types.string.parsing.complex

投稿日時 - 2007-07-28 23:39:44

お礼

hrm_mmmさん度々回答いただきありがとうございます!

教えていただいたやり方で無事解決しました!
教えていただいたPHPマニュアル、もっと勉強しようと
思います。

ありがとうございました!

投稿日時 - 2007-07-29 20:04:49

ANo.3

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

ANo.2

header()出力前に、include内でよけいな出力がされてるからでは?
何らかの出力が行われると、その時点で、とりあえずのheaderが送信されてしまい、
その次のheader()出力は、contentとして評価されるのでjavascript構文としては文法エラーになります。
今回の場合は、include文をheader()より後方で実行すればいいだけでしょう。

投稿日時 - 2007-07-28 11:48:03

補足

hrm_mmmさん回答ありがとうございます!
教えていただいた箇所修正したところ、エラーはなくなり
ました!

ただ、
echo "document.write(\" $obj->getCategories() \")";
ここの部分で表示されるのが()括弧だけなんです。

この部分を下記のように修正して
echo $obj->getCategories();

直接init.phpをたたくときちんと表示されるので値は取得できて
いるのですが、phpの返り値をきちんと文字列に変換などしないと
いけないのでしょうか?
ちなみに$obj->getCategories()で返却される文字列は下記の
ような感じです。

<select name = 'categorie'>
<option value = 1>日記</option>
<option value = 2>備忘録</option>
</select>

色々とやってみたのですがうまくいかず、、度々お手数おかけ
いたしますが、解決方法ありましたらご教授お願いいたします。

投稿日時 - 2007-07-28 12:56:16

ANo.1

そのような場合は
XMLHttpRequest
が適当なのでは?

ajaxで引くと沢山でてくると思おう

投稿日時 - 2007-07-28 04:18:32

お礼

SAYKAさん回答ありがとうございます!
ajaxは初めてだったのですが、ajaxとXMLHttpRequestで検索し、
なんとか表示することができました!

ただ…携帯(docomo)ではjavascript使えないんですよね?
根本的に間違えちゃったかな…とちょっとへこんでおります。

もし携帯で表示する解決策ありましたらまたアドバイスいただ
けると幸いです。

投稿日時 - 2007-07-28 12:55:53

あわせてチェックしたい
  • OLE_objエラーについて ...
  • \'xjis.nls\' ...
  • 383系について ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら