Javascript 将数据发布到php页面并将结果作为json编码为单个项的多维数组的ajax代码?
对不起,这个奇怪的题目 这里我想说的是——我的数据库中有两个表。表1是酒店表,表2是房间型表,我想做的是,当客户定制他的旅行套餐时,他应该能够使用单一模式根据不同的位置更改酒店 我的问题是:当我在PHP页面(即hotel_selector.PHP)中传递位置时,我应该得到一个JSON作为Javascript 将数据发布到php页面并将结果作为json编码为单个项的多维数组的ajax代码?,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,对不起,这个奇怪的题目 这里我想说的是——我的数据库中有两个表。表1是酒店表,表2是房间型表,我想做的是,当客户定制他的旅行套餐时,他应该能够使用单一模式根据不同的位置更改酒店 我的问题是:当我在PHP页面(即hotel_selector.PHP)中传递位置时,我应该得到一个JSON作为 [ { "hotel_id": "1", "hotel_name": "velocity", "hotel_location": "portblair",
[
{
"hotel_id": "1",
"hotel_name": "velocity",
"hotel_location": "portblair",
"hotel_type": "3",
"hotel_img": "velocity.jpg",
"roomtype_id": "1",
"type_name": "Deluxe",
"type_description": "blah",
"type_img": "deluxe.jpg"
},
{
"hotel_id": "2",
"hotel_name": "whitecoral",
"hotel_location": "portblair",
"hotel_type": "3",
"hotel_img": "white_coral.jpg",
"roomtype_id": "1",
"type_name": "luxury",
"type_description": "blah",
"type_img": "luxury.jpg"
}
]
但我有不止一个单一酒店的房间类型,所以当用户单击“更改酒店”按钮时,如何显示带有房间类型的酒店
我的php代码(hotel_selector.php)
合并怎么样?请看一下这两个阵列:
<?php
$one = array(
"hotel_id" => "1",
"roomtype_id" =>"1"
);
$two = array(
"hotel_id" => "2",
"roomtype_id" =>"1"
);
$three[0] = array_merge($one,$two);
$three[1] = array_merge($one,$two);
echo( json_encode($three));
?>
我的想法是,您可以在每次迭代中合并$result&$result2,并将合并后的数组作为新关联数组的元素:
$result = array();
$result2 = array();
$merged_array = array();
$query = mysql_query("SELECT * FROM hotel WHERE hotel_location = '$location' AND visibility = 'visible'")or die("the query cannot be completed");
while($row = mysql_fetch_array($query, MYSQL_ASSOC)){
$hotel_id = $row['hotel_id'];
$sql= mysql_query("SELECT * FROM room_type WHERE hotel_id = '$hotel_id'");
while($row1=mysql_fetch_array($sql, MYSQL_ASSOC)){
$result2[] = $row1;
}
$result[] = $row;
$merged_array [] = array_merge($result1,$result2); // see here .....
}
/*echo json_encode($result);
echo json_encode($result2);
*/
echo json_encode($merged_array);// see here........
尝试在一个对象中对两个返回数组进行json_编码:
hotel_selector.php:
...
echo json_encode(array("hotels" => $result, "rooms" => $result2));
在ajax调用中有如下内容:
...
success: function (data) {
alert("hotels: " + data.hotels + "\nrooms: " + data.rooms);
}
iam将警报值设置为-hotels:undefined rooms:undefined可能意味着您在警报中引用了错误的数组键。尝试在成功函数中使用
alert(json.stringify(data))
显示您的整个返回json对象我多次获得相同的酒店我的输出如下:[[{“hotel_id”:“1”,“hotel_name”:“velocity”,“hotel_location”:“portblair”,“hotel_type”:“2”,“hotel_description”:“hotel_img”:“velocity.jpg”,“visibility”:“visible”},{“roomtype_id”:“1”、“酒店id”:“1”、“类型名称”:“豪华”、“描述”:“img”:“3.jpg”;“房间类型id”:“4”、“酒店id”:“1”、“类型名称”:“豪华”、“描述”:“img”:“3.jpg”;“房间类型id”:“9”、“酒店id”:“1”、“类型名称”:“超级豪华”、“描述”:“img”:“3.jpg”;“房间类型id”:“10”、“酒店id”:“1”、“类型名称”:“超级豪华”、“描述”:“img”:”客房类型id:“11”,“酒店id:“1”,“酒店img:”“test”,“description:”“img:”“”,“{”酒店id:“1”,“hotel\u name:“velocity”,“hotel\u location:”“portblair”,“hotel\u type:”“2”,“hotel\u description:”“hotel\u img:”“velocity.jpg”,“visibility:”“visible”},{”酒店id:“3”,“hotel\u name:“White Coral”:“White Coral”,“hotel\u location:“portblair”,“hotel\u type:”“hotel\u description:”“3”,“hotel\u描述”“:”,“hotel\u img”:“White Coral.jpg”,“visibility”:“visibility”;“{”roomtype\u id:“1”,“hotel\u id:“1”,“type\u name:“Deluxe”,“description:”,“img:“3.jpg:”豪华”,“description:”,“img:“3.jpg”;“{”roomtype\u id:“9”,“hotel\u id:“1”,“type\u name:”超级豪华”,“description:”img:“3.jpg”,“RoomID:”10:”,“酒店id”:“1”、“类型名称”:“超豪华”、“说明”:“yts h xnh hs ns”、“img”:“3.jpg”;{“roomtype_id”:“11”、“酒店id”:“1”、“类型名称”:“测试”、“说明”:“dddddd”、“img”:“test.jpg”;{“roomtype_id”:“2”、“酒店id”:“3”、“类型名称”:“Std Ac”、“说明”:“img”:“5”、“酒店id”:“3”、“类型名称”:“img”:“img”:”
...
success: function (data) {
alert("hotels: " + data.hotels + "\nrooms: " + data.rooms);
}