2011-01-05 16 views
3

何をしようとしていますか?jqueryのappend属性内でphp includeを使用しています。このような何か:私はこれを実現することができるようにjqueryでphpインクルードを使用する

$('a.popup[href^=#]').click(function() { 
$('body').append('<div id="content" class="popup_block"><?php include(SITE_URL . 'activity/popup.php') ?></div>'); 

私のスクリプトは、PHPファイル内のサーバー側であるが、それについて移動する方法がわからないイム。それはhtml、cssなどになると私はPHPファイル内でそれとPHPを組み合わせることができますが、それはjavascriptには、私を混乱させる引用符、そしてどのようにかっこを使用するかについてです。これはLOLを混乱させるように思えるかもしれません。とにかく、CDATAには何か関係がありますか?以前はこれまで使ったことはありませんでしたが、使い方を知っておく必要があります。

答えて

4

PHPのインタプリタは、<?phpタグと?>タグだけを探し、それらの間の何かを評価しようとします。周囲の引用については気にしません。 PHPが行うことの結果が有効なJavascriptであることを確かめる必要があります。

var foo = '<?php include 'foo.php'; ?>'; 

PHPはそれを使って行われた後

var foo = 'This is the content of foo.php.'; 

になります。

任意の引用符がfoo.phpである場合、それはこのになることがあります。

var foo = 'This is the 'content' of foo.php.'; 

無効Javascriptの構文です。このような無効な構文を引き起こす可能性のあるfoo.phpの文字をエスケープする必要があります(たとえば、addslashes)。しかし、これはかなり面倒かもしれません。だから私はこれに代わるものを探すことをお勧めします。あなたは間違いなく構文安全でJSONを使用して、値をエンコードすることができます

:コード内

var foo = <?php echo json_encode("Some string with 'quotes'."); ?>; 

生成コードは常に注意が必要です、それを行うと、JSONまたはXMLのような言語中立データ交換形式に固執しないようにしてみてください。

+0

+1の '' json_encode() ''です。そのことを知らなかった。 – JakeParis

+0

JSONを呼び出すための特別なプラグインが必要ですか?現在、私はjQuery 1.4.4 – Sin

+0

@Sin [JSONはJavascript Object Notationです](http://en.wikipedia.org/wiki/Json)を使用しています。これは、単純なデータ交換フォーマットとして使用するのに適したJavaScriptです。いいえ、それを使うのに特別なことは必要ありません。 – deceze

1

あなたのインクルードに一重引用符がないことを100%確信している場合は、それを持つ方法に問題はありません。

視覚化したい場合は、生成されたコードをすべて付属のphpファイルからコピーし、append()のメインページに貼り付けます。それがどのように見えるか見る。これにより、ブラウザがどのようなものになるのかを知ることができます。

+0

hmmm、あなたも知っています。含まれているPHPファイルの内容に適用されますか? – Sin

+0

はい!最終結果を視覚化するために上記の私の編集を参照してください。 – JakeParis

+0

ああ、それでは、法的なマークアップは? jquery内の ' '?ただ何も残していないことを確認してください。 – Sin

関連する問題