2012-01-08 19 views
0

PHPからJSにいくつかの変数を渡そうとしています。私はこれを使用してきたJSに整数値を渡すにはどうすればよいですか?

var str = "<?php echo $x; ?>"; 

は、私は、文字列のために以下のコードが動作することをhereを見た1は、私はint型のために使用すべき

var var1 = <?= $var1 ?>; 

?最初のバージョンは常に良いですか? 2番目のものは古い形式ですか?私は、一般的にphpからjsに変数(dif型)を渡すことについての明確化と指示に満足しています。

ありがとうございます!

var data = JSON.parse("<?php echo addslashes(json_encode($data)); ?>"); 
+0

intにある場合は、引用符を付けたくないので、最初のコードサンプルで引用符を削除します。 – epascarello

+0

2番目のショートタグ構文は、一部で使用されないように提案されています(PHPはデフォルトのショートタグ構文を将来的に有効にしてしまい、いくつかの設定で有効にしないなどの不具合があります)。 )。 –

+1

この質問は何度も聞かれました。これを行う最も安全な方法は 'json_encode'です。 – igorw

答えて

5

まず、javascriptで変数を宣言する方法を説明します。

変数には多くの種類がありますが、intstringに行きます。文字列は、文字列を引用符で囲む必要があります。 Intはそうではありません。

var int = 5; 
var string = "hello"; 

我々は我々がやっているすべては、PHPで宣言された変数と等号の後に値を置き換えて、JavaScriptにPHPの変数を渡しています。変数をエコーする2つの方法について述べました。

var str = "<?php echo $phpVariable; ?>"; 
var str = "<?= $phpVariable ?>"; 

これらの変数は、PHP開閉タグの前後に引用符が存在しないであろう(方法によって整数かどうかにかかわらず、任意の数を含む)intた場合。さて、あなたは、2番目の方法を好むと言いました。私は本当にあなたにはアドバイスしません。 <?= $phpVariable ?>を入力するのはずっと簡単ですが、<?php echo $phpVariable; ?>よりも前者はすべてのサーバーでサポートされていますが、後者はすべてのサーバーでサポートされています。必要に応じて使用することができますが、サーバーに移動したい場合は、そのシンタックスが最初に許可されているかどうかを確認する必要があります。

+0

ありがとう!これは物事をクリアする。今までは数字だけを使っていましたが、今では最初の文字列があり、構文の違いに気付きました。 –

+1

@LucyWeatherfordうれしい私は助けることができます。この投稿の左にあるチェックマークをクリックしてください。 – blake305

+0

また、私のテキストエディタには、これらの行の末尾にある ';'の問題があります。どんな考え?彼は 'エラーメッセージ - 予期しない\' '; "' 'タイプ - 構文エラー' –

0

は、これを使用します。 2番目のバージョンは、php.iniでshort_open_tagオプションが有効になっている場合に有効になります。 PHP 5.4では、short_open_tagを有効にしなくても<?=が利用可能になります。

+3

すべてのJSON値は定義上有効なJavaScriptリテラルなので、 'JSON.parse()'や 'addslashes()'は必要ありません。 –

+0

ああああ。 (そして、それは私のdownvoteではないことに注意してください。) –

-1

2つのバージョンが等価である:一般的な解決策について

+0

これはあまりにも正しいので、これはdownvotedですか? – gview

+0

最初の値は値の前後に引用符があり、2番目の値は引用符で囲まれていません。 – igorw

+0

あなたはどういうことを言っていますか? – gview

2

まあ、 は、以下のようなとしてJavaScriptでそれを取得するための

$php_int_variable = 5; 
$php_string_variable = "Hello"; 

あなたが書く必要が
var int = 5; 
var string = "Hello"; 

var int = <?php echo $php_int_variable; ?>; 
var string = "<?php echo $php_string_variable; ?> "; 
0

EVEN誰とでも、PHPで言うことができます問題は、次の方法を作る!

var str = "<?php echo $x; ?>"; 

これが文字列に!

var int = parseInt('<?php echo $x; ?>'); 

これは、INTに!

関連する問題