3

重複の可能性:
$。ajax()を使用してPHPからJavascriptに文字列の配列を渡す方法は?

連想配列をphpコードからjavascriptコードに渡したい。私を助けてください。どうすればこれを行うことができますか?JSONはこの問題に役立ちますか?はいの場合は、ヘルプ用の簡単なコードを提供してください。ありがとうございました。

以下のコメントから:
HTML+PHPコード

<td> 
    <input type="text" style="width:70;" name="<?php echo $quantity;?>" id="<?php echo $quantity;?>" onkeyup="check_valid_range('<?php echo $itemName;?>','<?php echo $quantity;?>',<?php echo json_encode($product_inventory);?>);">
</td> 
<script type="text/javascript"> 
    function check_valid_range(product_field, quantity_field, inventory){ 
        var product = document.getElementById(product_field).value; 
        var quantity = document.getElementById(quantity_field).value; 
        var v = inventory[product]; 
        alert(v); 
    } 
</script>
4

2 に答える 2

10

JSON は完璧です:

<?php

$mySweetJSONString = json_encode($myAssocPHPArray);

?>
<script>
    var iWantThePHPArrayHere = <?php echo $mySweetJSONString; ?>;
</script>

ユーザーpstが次の懸念を提起しました。


アップデート:

JS の問題のデバッグに関して:
コンソールにエラーはありますか? あなたの1人がdocument.getElementById(...)nullを返している可能性があります。したがって、メンバーvalueは存在しません。

于 2011-08-27T20:13:30.640 に答える
0

私は常に、JSON がこのために発明されたと信じていました。

<script>
    var myArray = <?=json_encode($myArray)?>;
</script>

これは次のようにレンダリングされます。

<script>
    var myArray = {"key":"value","key2":"value2",...};
</script>

安全性

JSON は JavaScript 構文のサブセットであるため、これは JavaScript にとって完全に安全です。これは、任意の JSON 文字列を Javascript として扱うことができることを意味します。

PHPjson_encode()<script>は JSON をタグに埋め込む場合も完全に安全です。PHPは次の/文字をエスケープするからです。

json_encode('</script>');
=> "<\/script>"

そのため、タグ</script>をエスケープする唯一の方法であるを書くことはできません。<script>(タグ内のすべてが<script>スクリプトの一部であり、HTML として解析されません。) JSONでは、この目的のために をエスケープできます。/

そのため、JSON 文字列は<script>タグをエスケープできません。

于 2011-08-27T20:55:28.177 に答える