PHPでjQuery変数を埋めることは可能ですか???
私はこのようなことを意味します:
<?php
$string_php = "50%";
?>
そして、「$string」変数を使用して、jQuery を埋めたい:
var jquery_string = "$string_php";
$('.bar1').animate({'height':'jquery_string'},500);
上記のコードは、私がどのように働きたいかという考えにすぎません
はい、ただしphpタグ <?php ?>
を使用します(phpがそのコードを認識できるように):
var jquery_string = "<?php echo $string_php;?>";
$('.bar1').animate({'height':jquery_string}, 500); // no quotes for variables
これは、PHP (サーバー側) が jQuery (クライアント側) の前に実行されるため可能です。ページは最初にサーバーに送られ、サーバーは応答 (php コードがそこで解析されます) をブラウザーに返します。
もちろん
var jquery_string = "<?php echo $string_php;?>";
PHP は最初にサーバーで処理され、結果がユーザーのブラウザーに送信されるため、これは簡単で、多くの場合行われます。
上記のコードは次のようになります。
var jquery_string = "50%";
ただし、次のように変数から引用符を削除して、2 行目を変更する必要があります。
$('.bar1').animate({'height':jquery_string},500);
引用符を付けておくjquery_string
と、変数が必要なのに対し、強制的に文字列として解釈されるためです。
最終結果は次のようになります。
$('.bar1').animate({'height':'50%'},500);
単純な変数の場合は、ユーザーが言ったとおりに実行します。
F.ex. var jquery_string = "<?php echo $string_php;?>";
(@Blasterのソリューションから取得)。言い換えると:
最も簡単な解決策は、変数を定義する場所ならどこでも、echoを介して文字列リテラルとして使用する予定のphp変数を出力することです。
ただし、正しいアプローチは、サーバーサイド変数をJavascript文字列として使用するたびに、エンコードする必要があることです。これは、二重引用符が存在する場合、上記のソリューションが失敗するためです。ここjson_encode
が重宝するかもしれません。
var jquery_string = <?php echo json_encode($var); ?>;
Javascriptが文字列にアラートを出すようにします"Hey", dude!
$string = "\"Hey\", dude!";
echo "alert(\"" . $string . "\");";
結果:
alert(""Hey", dude!"); <--- will give Javascript error
その代わり:
echo "alert(" . json_encode($string) . ");";
結果:
alert("\"Hey\", dude!"); <---- correct JS code