1

ばかげたエラーをいくつか犯しましたが、何をしたのかわかりません。

PHP から Javascript への変数の受け渡しをテストしようとしていますが、それが配列の場合はjson_encode

私のファイルはPHPファイル、つまり.phpです

元の PHP に追加したエラーの原因と思われる php 行のコードは正常に動作します

<?php

$php_var = 'lol';
$php_array = array ();
$php_array["lady"] = "mary";
$php_array["gent"] = "joseph";
echo is_array($php_array) ? json_encode($php_array) : $php_array;  // same as faulty line in javascript
?>

<html>
<body>

<script type="text/javascript" charset="utf-8">

var php_var = "<?php if (is_array($php_var)) {echo json_encode($php_var); } else { echo $php_var;}; ?>";
document.write(php_var + ' ifElse<br>');

// THE FOLLOWING LINE GIVES  Uncaught SyntaxError: Unexpected identifier 
var php_var2 = "<?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>";

document.write (php_var2 + ' EitherOR<br>');

alert(php_var + php_array);

</script>
<h1> Testing Jscript variables</h1>
</body>
</html>
4

3 に答える 3

2

あなたが指定したように、エラーは次の場所にあります:

var php_var2 = "<?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>";

エラーは、Javascript で二重引用符("")を使用して単一引用符を使用したことが原因である可能性があります。('')

これはあなたのエラーを解決するかもしれません: var php_var2 = '<?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>';

Objectまたは、 を使用して JSON 文字列からJavascript を直接作成することもできますeval()

http://jsfiddle.net/jduGp/

于 2013-01-25T11:47:50.570 に答える
0

こんな感じでした

<?php

$php_var = 'lol';
$php_array = array ();
$php_array["lady"] = "mary";
$php_array["gent"] = "joseph";
?>

<html>
<body>

<script type="text/javascript" charset="utf-8">

var php_var = <?php if (is_array($php_var)) {echo json_encode($php_var); } else { echo '"' . $php_var . '"';} ?>;
document.write(php_var + ' ifElse<br>');

// THE FOLLOWING LINE GIVES  Uncaught SyntaxError: Unexpected identifier
var php_var2 = <?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>;

document.write (php_var2 + ' EitherOR<br>');

alert(php_var);

</script>
<h1> Testing Jscript variables</h1>
</body>
</html>

Javascriptがその変数を認識していないのに、なぜphp_arrayに警告しようとしているのかわかりません。文字列を出力する場合を除いて、引用符も必要ありません。オブジェクトを引用符で囲むと、Javascriptはそれを文字列と見なします。

于 2013-01-25T11:43:11.757 に答える
0

このコードを試してください。以下に示すように、2 つの行を置き換えます。

var php_var = <?php if (is_array($php_var)) {echo json_encode($php_var); } else { echo $php_var;}; ?>;

var php_var2 = <?php echo is_array($php_array) ? json_encode($php_array) : $php_array; ?>;
于 2013-01-25T11:36:54.453 に答える