发布网友 发布时间:2022-04-23 03:35
共4个回答
懂视网 时间:2022-05-15 05:57
这篇文章主要给大家介绍了如何解决AJAX请求中含有数组的问题,文中给出了详细的示例代码,相信对大家的理解和学习很有帮助。
大家应该都发现了当我们发送AJAX请求的数据中带有数组时,是不能像普通JSON数据一样,直接放在data里发送给后台
比如有这样一个数据需要发送给后台:
其中resourceJson字段是一个数组,如果直接把这个JSON数据传给后台
后台得到的数据是这个样子:
浏览器会自动把数组解构成一个个变量,后台拿到这个数据就直接傻逼了。
所以,最好的办法是把数组编程字符串,很简单,把数组单独用一个变量存起来,然后JSON.stringify
(数组),把得到的字符串放到JSON数据里,这样,浏览器就不会自动去帮你解构数组,后台拿到的也就是一个真正的数组了。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
Ajax请求和Filter配合案例解析
Ajax解决缓存的5种方法总结
ajax快速解决参数过长无法提交成功的问题
热心网友 时间:2022-05-15 03:05
定义这样一个数组:
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);
}
热心网友 时间:2022-05-15 04: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就不能得到值
忘我的回答能采纳
热心网友 时间:2022-05-15 05:58
可以使用json数据格式,PHP ,json_encode();