1

我希望通过 ajax 通过 post 发送一组对象。背景故事:用户选择了多个房间,这些房间应该在另一个文件中使用 php.ini 进行预订。
数组/对象定义为:

var rooms = {};
rooms[rname] = 
                {
                        "rname": rname, // eg 1.27
                        "date": date, // eg 2013-04-24
                        "time": time, // eg 20:15
                        "duration": duration // eg 4
                }

并进行了ajax调用

$.ajax({ 
         type: 'GET', //used get to see the parameters passed
         url: 'book_room.php',
         data: rooms
});

但是,发送的请求似乎是这样的:

http://url.dk/book_room.php?1.29%5Brname%5D=1.29&1.29%5Bdate%5D=2013-04-28&1.29%5Btime%5D=20%3A15&1.29%5Bduration%5D=4&2 .25%5Brname%5D=2.25&2.25%5Bdate%5D=2013-04-28&2.25%5Btime%5D=20%3A15&2.25%5Bduration%5D=4

如何在请求中成功传递一组房间,以便我可以正常使用它们?我有一种感觉,我误解了这里的某些东西的目的。

4

2 回答 2

2

根据 API http://api.jquery.com/jQuery.ajax/ 你应该像这样发布:

$.ajax({
    contentType:"application/json",
    url:yourEndPoint,
    data:JSON.stringify(yourStuffGoesHere),
    dataType:"json",
    processData:false,
});
于 2013-04-28T19:10:15.650 回答
0

根据建议,我将发布问题的修复作为答案。
我找到了一个解决方案,其中根据选择的房间数量发出 X 请求,并且效果很好。

$.each(rooms, function(k,v) {
                    $.ajax({
                        type: 'GET',
                        url: 'book_room.php',
                        data: v
                    });
                });

这次提出的请求看起来很容易处理。示例请求:

http://url.dk/book_room.php?rname=1.47&date=2013-04-28&time=21%3A00&duration=4 http://url.dk/book_room.php?rname=22.3&date=2013-04-28&time =21%3A00&持续时间=4

于 2013-04-28T19:07:08.003 回答