1

後で JavaScript で値を取得できるように、非表示のフォーム入力に貼り付けたい連想配列が php にあります。引用の問題のため、json または htmlentity を urlencode する必要があります。オブジェクトを JavaScript で取得したら、プレーンな json に戻す最も簡単な方法は何ですか?

または、この問題にアプローチするより良い方法はありますか? ここでは、AJAX はやり過ぎのように思えます。複数の要求を設定するよりも、ページにデータを事前に入力するほうがよいでしょう。php で生成された script タグ内のページに php オブジェクトを書き込むことができると思いますが、それは少し面倒です。これが使用される可能性のあるすべての状況で [scripts] が解析されるかどうかはわかりません。

4

2 に答える 2

3

フィールド内にデータを貼り付けるとdecodeURIComponent、値をデコードするために使用できます。例:

decodeURIComponent("%5b'hello'%2c%20'world'%5d"); // ['hello', 'world']

<script>もう 1 つの方法は、JSON オブジェクトをPHP 出力の要素に埋め込むことです。JSON オブジェクトを、それをどこかに格納する関数への引数にすることさえできます。

<script>setupData(<?= toJSON(['hello', 'world']) ?>)</script>

ページが読み込まsetupDataれると、 はリテラルで呼び出され['hello', 'world']ます。

于 2009-11-17T22:40:05.523 に答える
1

おー。私は最初にテストすべきだったと思います。私は道場を使用しています、そしてこれはちょうどうまくいきます:

PHP:

$arr = array('nyc'=>'big apple', 'boss'=>'big banana', 'lion'=>'big cat');
$json = htmlentities(json_encode($arr));
echo '<input type="hidden" id="myHidden" value="' . $json . '" />';

Javascript:

var raw = dojo.byId('myHidden').value;
var arr = dojo.fromJson(raw);
for (var i in arr) {
    console.log(i + " => " + arr[i]);
}

【羊のニヤニヤ】

于 2009-11-17T22:57:33.997 に答える