1

jQuery を使用してこのような配列を渡そうとしていますが、PHP スクリプトはそれを受信せず、Chrome のネットワーク トレースを調べると、title渡されたものだけが表示されます。

var items = new Array();

items[0] = new Array();
items[0]['code'] = '1234';
items[0]['checked'] = true;

items[1] = new Array();
items[1]['code'] = '4524';
items[1]['checked'] = false;

これは、AJAX 要求を行うコードです。

var sUrl = "<?= base_url(); ?>list/create/";
var serialized = {
    title: 'Some Value Here',
    items: items
};
$.ajax({
    url: sUrl,
    type: "POST",
    data: serialized,
    success: function(data) {
        alert(data);
        list_id = data;
    }
});                 

問題は、jQuery がシリアル化できないことのようです。これを回避する方法はありますか?ありがとう!

4

3 に答える 3

0

次のようにアイテムオブジェクトを作成するとどうなりますか。

var items = [
    {
        code: '1234'
        , checked: true
    }
    ,{
        code: '4568'
        , checked: false
    }
];

問題は、標準オブジェクトを作成する必要があるときに、内部オブジェクトを使用して配列を作成していることだと思います。

于 2012-05-20T20:21:59.590 に答える
0

実際には配列を作成し、配列に文字列でインデックスを付けることはできません。文字列をインデックスとして使用する必要がある場合は、Jason の回答で提供されているように、代わりにオブジェクトを使用する必要があります。

items = new Array();

items[0] = new Object();
items[0]['code'] = '1234';
items[0]['checked'] = true;
于 2012-05-20T20:27:54.863 に答える
0

new Arrayの各インデックスにa を割り当てていますが、その配列にitems新しいcodeandプロパティを割り当てています。checkedこれは、配列内の各位置にオブジェクトを配置するのではなく、いくつかのランダムなプロパティ (codeおよびchecked) を追加した別の配列があるため、適切にシリアル化されません。

配列内の各位置にオブジェクト リテラルを割り当ててみてください。

var items = [];

items[0] = {
    code: '1234',
    checked: true
};

items[1] = {
    code: '4524',
    checked: false
};
于 2012-05-20T20:28:47.840 に答える