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

現在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を始めたばかりの初心者で、質問自体おかしい点があるかも
しれませんが、、どうぞよろしくお願いいたします。

A 回答 (3件)

echo "document.write(\" {$obj->getCategories()} \")";


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

参考URL:http://php.s3.to/man/language.types.string.html# …
    • good
    • 0
この回答へのお礼

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

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

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

お礼日時:2007/07/29 20:04

header()出力前に、include内でよけいな出力がされてるからでは?


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

この回答への補足

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

そのような場合は


XMLHttpRequest
が適当なのでは?

ajaxで引くと沢山でてくると思おう
    • good
    • 0
この回答へのお礼

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

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

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

お礼日時:2007/07/28 12:55

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