JavaSrciptの変数の設定をPHP側でやりたいのですが良い方法があれば教えてください。

PHP,JavaScriptの変数を1つのファイルにまとめたいのです。

<script type='text/javascript'>var url = '<?php echo $url; ?>'</script>

こんな風にHTMLに埋め込む形で、PHPで設定したurlをJavaScriptに渡しているのですが、
どうにもスマートではないので上手なやり方があれば教えてください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2008/04/07 21:37:17
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:wizemperor No.2

回答回数379ベストアンサー獲得回数52

ポイント60pt

用途にもよりますがJSONを使うと楽だと思います。


http://itpro.nikkeibp.co.jp/article/COLUMN/20070307/264116/

http://jsgt.org/ajax/ref/test/json/getpost/test2.htm


JavaScript側は、PHPが出力したJSONファイルを読み込むだけで変数(実際にはオブジェクトのプロパティですが)の設定が完了します。

id:southgate_01

コメントありがとうございます。

説明が足らずに申し訳ないのですが、サーバからデータを取得するのではありません。


PHPファイルにべた書きした変数をJavaScriptでも読みたいというようなことです。

2008/04/07 15:53:25

その他の回答2件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント30pt

ヒアドキュメントを使い、

echo <<< EOF
<script type="text/javascript">
var url = {$url};
</script>

EOF;

のように記述するのはどうでしょうか。

id:southgate_01

コメントありがとうございます。

変数が多い場合はこうすると綺麗に書けますね。

2008/04/07 11:21:17
id:wizemperor No.2

回答回数379ベストアンサー獲得回数52ここでベストアンサー

ポイント60pt

用途にもよりますがJSONを使うと楽だと思います。


http://itpro.nikkeibp.co.jp/article/COLUMN/20070307/264116/

http://jsgt.org/ajax/ref/test/json/getpost/test2.htm


JavaScript側は、PHPが出力したJSONファイルを読み込むだけで変数(実際にはオブジェクトのプロパティですが)の設定が完了します。

id:southgate_01

コメントありがとうございます。

説明が足らずに申し訳ないのですが、サーバからデータを取得するのではありません。


PHPファイルにべた書きした変数をJavaScriptでも読みたいというようなことです。

2008/04/07 15:53:25
id:ken33jp No.3

回答回数928ベストアンサー獲得回数13

ポイント30pt

変数の値だけでなくて、

変数名もPHPで生成するほうがスマートだと思いますけど。

そうすれば、ループで生成できるんじゃないでしょうか?

id:southgate_01

コメントありがとうございます。

2008/04/07 21:35:55
  • id:wizemperor
    手軽にやるなら、PHPの変数を連想配列にしておけば、ループで回してしまえば早そうですが、

    // $data は array('url' => 'http://example.com', ...); みたいな感じ
    $js = '<script type="text/javascript">';

    foreach($data as $key => $value) {
    $js .= 'var ' . $key . ' = ' . $value . ';' . "\n";
    }

    $js .= '</script>';

    既存のPHPソースを修正することなく、という感じだと無理ですね.

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません