ajax 返回数组怎么解决???
我的前台页面有两个下啦列表框,第二个要根据第一个的选择来循环输出列表框里面的选项。第一个列表框是选择房间类型的包括普通间标准间之类的,我在数据库里面的房间表里定义了一个字...
我的前台页面有两个下啦列表框,第二个要根据第一个的选择来循环输出列表框里面的选项。第一个列表框是选择房间类型的 包括 普通间 标准间之类的,我在数据库里面的房间表里定义了一个字段来表示房间类型的,当我改变第一个下拉框的时候触发ajax,然后经过一系列的处理,返回到第二个列表框的应该是一个数组,我要怎么处理我的数组呢??下面把部分代码贴出来:
第一个下拉框:
<select name="roomsort" onchange="showroomsort(this.value)">
<?php foreach($list_roomsort as $item):?>
<option value="<?php echo $item->id;?>"><?php echo $item->sortname; ?></option>
<?php endforeach;
?></select>
第二个下拉框:
<select id="roomshow" >
<option value="">请选择房间号</option>
<?php foreach($list_room as $item):?>
<option value="<?php echo $item->room_num;?>"><?php echo $item->room_num; ?></option>
<?php endforeach;
?>
</select>
实现ajax部分的js没有问题,我用非数组测试过,能够正常显示。下面这个js代码:
document.getElementById("roomshow").innerHTML=xmlHttp.responseText;这是js里面觉得返回位置的那句代码roomshow就是第二个下拉框的id,我不知道如果返回的是数组这句的写法对不对,小弟新手希望大家指点,谢谢啦。最好能给小弟举个例子,那样好理解,谢啦。
忘了把我的处理ajax的php代码贴出来了,我用的是CI框架,下面这个函数就是处理ajax的:
function dealroomsort($q){
$this->load->model('Mroomnum');
$data['list_room']=$this->Mroomnum->selectroom($q);
echo $data;
}
$q是第一个下拉框触发ajax时,传过去的参数,中间的js没有问题,我测试过的。就是返回数组时不知道该怎么让它显示出来。
***********************************************************************
我把数组用json格式传递回来,可是前台怎么显示呢??要显示到下啦列表中,用循环显示吧,可是是用php循环,还是要用js的for in 循环呢 ??我在那个处理ajax的php函数里面是这样输出的
echo json_encode($data); 展开
第一个下拉框:
<select name="roomsort" onchange="showroomsort(this.value)">
<?php foreach($list_roomsort as $item):?>
<option value="<?php echo $item->id;?>"><?php echo $item->sortname; ?></option>
<?php endforeach;
?></select>
第二个下拉框:
<select id="roomshow" >
<option value="">请选择房间号</option>
<?php foreach($list_room as $item):?>
<option value="<?php echo $item->room_num;?>"><?php echo $item->room_num; ?></option>
<?php endforeach;
?>
</select>
实现ajax部分的js没有问题,我用非数组测试过,能够正常显示。下面这个js代码:
document.getElementById("roomshow").innerHTML=xmlHttp.responseText;这是js里面觉得返回位置的那句代码roomshow就是第二个下拉框的id,我不知道如果返回的是数组这句的写法对不对,小弟新手希望大家指点,谢谢啦。最好能给小弟举个例子,那样好理解,谢啦。
忘了把我的处理ajax的php代码贴出来了,我用的是CI框架,下面这个函数就是处理ajax的:
function dealroomsort($q){
$this->load->model('Mroomnum');
$data['list_room']=$this->Mroomnum->selectroom($q);
echo $data;
}
$q是第一个下拉框触发ajax时,传过去的参数,中间的js没有问题,我测试过的。就是返回数组时不知道该怎么让它显示出来。
***********************************************************************
我把数组用json格式传递回来,可是前台怎么显示呢??要显示到下啦列表中,用循环显示吧,可是是用php循环,还是要用js的for in 循环呢 ??我在那个处理ajax的php函数里面是这样输出的
echo json_encode($data); 展开
3个回答
展开全部
定义这样一个数组:
roomType = new Array();
roomType[0] = new Array(1, "01,02,03,04,05,06,07,08");
roomType[1] = new Array(2, "11,12,13,14,15,16,17,18");
roomType[2] = new Array(3, "21,22,23,24,25,26,27,28");
roomType[3] = new Array(4, "41,42,43,44,45,46,47,48");
根据传过来的$q的值来得到roomtype[$q],再得到roomtype[$q][1].split(','),然后纤迅传给第二个下拉宴竖首框
其实你现在的问题就是把获取到的json数组循环插入到下拉框里面,这个你到网上找一下吧,晌数JS循环填充下拉框的代码如下:
for (j = 0; j < tmpcityArray.length; j++) {
//填充 城市 下拉选单
document.getElementById(cid).options[document.getElementById(cid).length] = new Option(tmpcityArray[j],j);
}
roomType = new Array();
roomType[0] = new Array(1, "01,02,03,04,05,06,07,08");
roomType[1] = new Array(2, "11,12,13,14,15,16,17,18");
roomType[2] = new Array(3, "21,22,23,24,25,26,27,28");
roomType[3] = new Array(4, "41,42,43,44,45,46,47,48");
根据传过来的$q的值来得到roomtype[$q],再得到roomtype[$q][1].split(','),然后纤迅传给第二个下拉宴竖首框
其实你现在的问题就是把获取到的json数组循环插入到下拉框里面,这个你到网上找一下吧,晌数JS循环填充下拉框的代码如下:
for (j = 0; j < tmpcityArray.length; j++) {
//填充 城市 下拉选单
document.getElementById(cid).options[document.getElementById(cid).length] = new Option(tmpcityArray[j],j);
}
展开全部
<script>
function check(){
var myphone = $("#myphone").val();//手机1
var friendphone = $("#friendphone").val();//手机2
$.ajax({//一个纤备Ajax过程毁粗毁
type: "POST", //以post方式与后台沟通
url : "ajax.php",//与此php页面沟通
dataType:'json',//从php返回的值以 JSON方式 解释
data: 'myphone='+myphone+'&friendphone='+friendphone,
cache:false,
success: function(msg){//如果调用php成功,注意msg是返回的对象,这个你可以自定义
if(msg.ajaxmyphone==''){//ajaxmyphone就是数组的一个键值
alert('手机1不存在!');
return false;
}
if(msg.ajaxyouphone==''){//另外一个键值
alert('手机2不凳中存在!');
return false;
}
}
});
}
</script>
PHP部分
首先你要把你返回的值压制成数组 例如
echo json_encode(array('ajaxmyphone'=>$ajaxmy,'id'=>$id));
注意 json_encode 这个函数是专门把返回的数组编码,否者返回的值,Ajax就不能得到值
忘我的回答能采纳
function check(){
var myphone = $("#myphone").val();//手机1
var friendphone = $("#friendphone").val();//手机2
$.ajax({//一个纤备Ajax过程毁粗毁
type: "POST", //以post方式与后台沟通
url : "ajax.php",//与此php页面沟通
dataType:'json',//从php返回的值以 JSON方式 解释
data: 'myphone='+myphone+'&friendphone='+friendphone,
cache:false,
success: function(msg){//如果调用php成功,注意msg是返回的对象,这个你可以自定义
if(msg.ajaxmyphone==''){//ajaxmyphone就是数组的一个键值
alert('手机1不存在!');
return false;
}
if(msg.ajaxyouphone==''){//另外一个键值
alert('手机2不凳中存在!');
return false;
}
}
});
}
</script>
PHP部分
首先你要把你返回的值压制成数组 例如
echo json_encode(array('ajaxmyphone'=>$ajaxmy,'id'=>$id));
注意 json_encode 这个函数是专门把返回的数组编码,否者返回的值,Ajax就不能得到值
忘我的回答能采纳
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用json数据格式,PHP ,json_encode();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询