我在一个html页面通过getJSON请求一个PHP页面查询的数据
返回数据在页面显示的时候出现undefined
请教高人帮忙看看 感激不尽!
php代码<?php
error_reporting = E_ALL & ~E_NOTICE 
header('Content-type:text/html;charset=utf-8');
//数据库连接
$linksql=mysql_connect("127.0.0.1:3306","root","123456") or die('没连接上mysql!');
mysql_select_db("xindong_db",$linksql);
mysql_query("SET NAMES 'utf8'");
// $hotels_name = isset($_GET['hotels_name']) ? trim($_GET['hotels_name']) : '';
$hotel_id = isset($_GET['hotel_id']) ? trim($_GET['hotel_id']) : 0;
$sql="SELECT room_type_en,price_hotel,start_date,end_date,rate_plan_cn FROM hotel_info WHERE hotel_id='$hotel_id'";
echo $sql; 
 //return;
 $res=mysql_query($sql);
 $num=mysql_num_rows($res);
//  echo $num;
 //$datas=mysql_fetch_array($res,MYSQL_BOTH);
$str = '';
$jsondata = '';
if($num>0){
while($row=mysql_fetch_array($res, MYSQL_ASSOC)){
$str .= '{"room_type_en":"'.$row['room_type_en'].'","price_hotel":"'.$row['price_hotel'].'","start_date":"'.$row['start_date'].'","end_date":"'.$row['end_date'].'","rate_plan_cn":"'.$row['rate_plan_cn'].'"},'; 
 }
$str = substr($str, 0, -1); //去掉末尾逗号 $jsondata = '['.$str.']';
// exit($jsondata);
 }
//echo $jsondata;
echo $_GET['callback'].'('.$jsondata.')';
?>
js代码
<script type="text/javascript">
$(document).ready(function(){
$.getJSON("http://localhost/chinahotelsmap.com/contourl/getHotelRoomPrice.php?rnd="+ Math.random()+"&callback=?",
{ hotel_id: $('#hotel_id').val()},
 function(data){
if(data.length > 0){
var str = '';
for( i=0; i < data.length; i++){
str += '<tr><td width="277" bgcolor="#99CCFF" class="text">'+data[i].room_type_en+'</td> <td width="167" bgcolor="#99CCFF" class="text">'+data[i].price_hotel+'('+data[i].rate_plan_cn+')</td><td width="154" bgcolor="#99CCFF" class="text"><a href="../../submithotel/form.php?HotelName=Qianyang Hotel Chengde&RoomType='+data[i].room_type_en+'&HotelTel=86-314-5907188"><img src="../../pic1/reserve-china-hotel.gif" alt="reserve hotel" width="70" height="18" border="0" /></a></td><td width="329" bgcolor="#99CCFF" class="text">'+data[i].start_date+' To '+data[i].end_date+'</td></tr>';
}
$("#dataTable").append(str);
}
else{
alert('未取得酒店数据!')
}
});
});
</script>在PHP页面的查询的数据没问题,应该是JS的问题 

解决方案 »

  1.   

     用each    $.each(data, function(i, item) {js code});
      

  2.   

    $str .= '{"room_type_en":"'.$row['room_type_en'].'","price_hotel":"'.$row['price_hotel'].'","start_date":"'.$row['start_date'].'","end_date":"'.$row['end_date'].'","rate_plan_cn":"'.$row['rate_plan_cn'].'"},'; 
    }
    $str = substr($str, 0, -1); //去掉末尾逗号$jsondata = '['.$str.']';......难道你不知道php 有个 json_encode($value) ? 直接编码出来就好了
      

  3.   


    PHP 5 >= 5.2.0虚拟主机?悲剧...