0

処理する別のファイルに配列を投稿しようとしています。配列は下にあり、行に適切に入力されます。グローバルにするために、スクリプトタグの先頭で初期化しています。
JavaScript の場合:

var locationsall = new Array();
locationsall[counter] = new Array();
locationsall[counter][0] = address;
locationsall[counter][1] = lat;
locationsall[counter][2] = lng;

私のフォームでは、それをシリアル化して投稿しようとしています

 <input type="hidden" name="result" value="<?php echo serialize($locationsall); ?>">

アンシリアライズしようとすると、何もありません..

    $locations = unserialize($_POST['result']);

ここで何が間違っていますか?

4

1 に答える 1

0

jQuery を介してクライアント側のデータを更新する場合、result の値を通過させたい値に設定する必要があります。jQuery.param()を使用して JS オブジェクトをシリアル化できるため、JSON でエンコードされたデータを PHP に渡すことができます。投稿データを処理するときは、JSON データをデコードする必要があります。$_POST['result']

JS

var test = new Array('a', 'b');
var data = $.param(test);
$('#result').val(data);
...

PHP

if (isset($_POST['result'])) {
    $data = (array) json_decode($_POST['result']);
}
于 2012-11-07T23:36:55.717 に答える