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);

定义这样一个数组:
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);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-23
<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就不能得到值

忘我的回答能采纳本回答被提问者采纳
第2个回答  2010-11-03
可以使用json数据格式,PHP ,json_encode();

ajax 返回数组怎么解决???
其实你现在的问题就是把获取到的json数组循环插入到下拉框里面,这个你到网上找一下吧,JS循环填充下拉框的代码如下:for (j = 0; j < tmpcityArray.length; j++) { \/\/填充 城市 下拉选单 document.getElementById(cid).options[document.getElementById(cid).length] = new Option(tmpcityArray...

AJAX怎么处理PHP返回的数组信息?
你如果想让后台以json格式返回数据,那么php就一定要用标准的json格式来输出数据,不要混杂其他无关数据。比如你的“返回的数据:”这几个字就属于多余数据,ajax在接收到返回数据后就会转换失败。所以你的 echo "返回的数据:"; 应该删掉(如果还有其他类似的输出语句也要删掉),确保输出的数据只有 ["...

javascript 或jquery如何正确读取ajax返回的数组
1、先把得到的数组用alert(array)看是不是[object],如果不是 如果是弹出这个数组的字符串的话;2、那就 var array=eval("("+array+")");再array[0]["title"]就能得到了。3、一般返回的如果不是json格式的数组,那么需要转换成json格式 jQuery.parseJSON(data);...

jquery ajax跨域请求 返回数组 报parsererror错误
这种情况我也遇到过,我之前也是需要跨域提交一个ajax请求实现新增数据,由于另一个系统的方法已固定,无法修改返回值。最后果断放弃了ajax的jsonp跨域这种方式,改用httpClient代理,在后台代理http发送请求。你可以试试

ajax如何正确接收php返回的数组
后端PHP代码里面echo json_encode($rows);就可以了,不要var_dump,PHP的数组格式JS需要写大量代码才能处理,而且可能会因为代码不完善产生不可预料的问题。

请教下AJAX能够返回数组吗? - 技术问答
ajax基本上都是返回字符串或者xml(实际上也是字符串)重点在于怎么组织这些返回的数据,到了客户端之后,都需要进行转换,因为服务器端的对象和客户端对象是两回事。举个例子,比如想在客户端返回数组,那么服务器端需要生成数组格式的字符串:客户端通过js就需要这样处理 查看原帖>> 希望采纳 ...

jquery ajax提交表单,为什么总是返回错误?如果不加错误返回函数,就是...
先提醒你一下,获取单个值,最好用id标识,别用name,用name取到的可能是一个数组;像 var username=$('input[name=username]'); 如果你一个页面有两个或多个input的name都是username,你就不能用username.val()这个方法了,因为这个时候username就是个数组 你在执行回调函数的的时候,后台返回的...

我有ajax返回一个json数组怎么给LigerUI 表格
ligerUI表格接收的json格式为:{"Rows":[{"id":"value","name":"value",...},{对象2}...],"Total":count} 比如:{"Rows":[{"amount":"123","applicant":"dasd","applyDate":"2012-07-05 18:20:24"},{"amount":"1231","applicant":"dasd","applyDate":"2012-07-04 17:55:...

$.ajax返回的json值,属性总是undefined??? 找了好长时间,不知问题出哪...
对象中就没有result\/Doe属性 肯定是undefined了!!!对象属性的访问,两种方式都是可以的! 后者更强壮一点,可以定义不规则的属性名

如何把ajax传回的字符串转换成js二维数组?其中元素以逗号分割,每行结束...
其实按照"百科小斌"的方法返回字符串,或是将返回的字符串格式化一下,就可得到二维数组了,代码如下:var s="1,2,3\\n4,5,6\\n7,8,9"; \/\/ 假设s是回传的字符串 eval("var m=[["+s.replace(\/\\n\/gi,'],[')+"]]");alert(m[0][0]); \/\/ 返回1 alert(m[1][1]); \/\/ ...

相似回答