2012-03-09 9 views
0

どのような条件の下で私はJavascriptコードにPHPを入れることができますか?それはいつも大丈夫ですか?それは単なる悪い考えですか?私はそれをもっと見ていないことに驚いています。例えばphpとjavascriptを混在させる - どのような条件の下で?

、私はこの出くわした...たOnPageスクリプト要素にあった..which

$('#thumbnail').imgAreaSelect({aspectRatio: '<?php echo $thumb_height/$thumb_width;?>', onSelectChange:preview}); 

。私はそれほど経験はありませんが、以前は混合js/phpを見たことがないことに驚いていました。しかし、PHPを.jsファイルに入れることはできますか?ファイル拡張子を.phpに設定すると、ファイルは解析されますか?

+3

タイトルと実際の質問は一致しません。 – Arjan

答えて

5

*.jsファイルにPHPコードを入れることができますが、Webサーバーに*.jsファイルのPHPインタープリタも実行するように指示する必要があります。このような何かはあなたのhttpd.conf

<IfModule php5_module> 
    AddType application/x-httpd-php .php .php5 .js 

    ... 
</IfModule> 

でよりよい解決策であるべきちょうど*.js.phpまたはちょうど*.phpにご*.jsファイルの名前を変更することです。ブラウザは気にしないでしょうし、PHPインタプリタも実行します。

+0

ありがとう! –

0

PHPとの混合は、デバッグの難しさやコードの読みやすさ(HTMLとPHPを混在させるなど)のために避けてください。しかし、それは可能です。しかし、より安全なアプローチは、PHPの値を関数に渡すか、PHPの値をグローバルなJS変数に設定し、代わりにそれを使用することです。次のようなものがあります。

//JS code 
    var value = <?php echo ($thumb_height/$thumb_width);?> 

.... 

    $('#thumbnail').imgAreaSelect({aspectRatio: value, onSelectChange:preview}); 

このようにすれば、読みやすくなります。すてきな一日を。

+0

PHPは最高のテンプレートエンジンであり、その目的のために広く使われています。明らかにHTML –

+0

と混同しています。 PHPはテンプレートエンジンとはみなされません。それをHTMLやJSと混在させることができれば、それは必須ではありません。 –

+0

あなたはより多くの経験や研究が必要です。 PHPは今日、主要なテンプレートエンジンです。 SmartyやXSLTの機能は、SmartyやXSLTを使用せずに行うことができます。なぜ他のものを使うのですか? HTMLとPHPを混在させるのはなぜですか?いいえ、SmartyのHTMLは大丈夫ですか?違いは何ですか? –

0

どのような条件の下で、私はJavaScriptをJavascriptコードに入れることができますか?

条件なし。それは不可能で無駄でしょう。
あなたは逆のJSコードだけをPHPに入れることができます。 つまり、のテキストをPHPの出力にすることができます。これは、HTML、JS、XMLなどどんなものでも有効です。
ブラウザに送信されると、このテキストはと解釈されますが、その中にPHPのトレースはありません

PHPが表示ロジックのみを表す限り、常にOKです。

PHPを実際にPHPファイルにする場合にのみ、PHPを.jsファイルに置きます。

0

あなたが提示したコードは、Webサーバーから返されたWebページでjavascriptを動的に生成する非常に合理的な方法です。

ので、例えば、$ thumb_height場合は100だったし、$ thumb_widthは10だった、次のJavaScript含むウェブページを返すWebサーバ:。

$( '#サムネイルを')imgAreaSelect({アスペクト比を: '10'、onSelectChange:preview});

ページへの別の呼び出しでは、$ thumb_heightは24だったと$ thumb_width、場合、サーバから返されたウェブページは次のようになりました6:

$( '#サムネイル')。imgAreaSelect({aspectRatio: '4'、onSelectChange:preview});

PHPを使用して、Webページの任意の部分(HTMLとJavaScriptの両方)を動的に生成できます。

関連する問題