javascript-jQuery的serializeArray对象赋值问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-jQuery的serializeArray对象赋值问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2176字,纯文字阅读大概需要4分钟。
内容图文
目前的情况是这样的,后端采用PHP的YII框架,通过view方式将数据返回给前端。其中有一个form表单,通过绑定onclick事件,把php获取过来的数据请求到另外一个后端,即如下的sendAction.php。
问题:通过jQuery的serializeArray()方法赋值后,生成了一个对象,请问如何往这个对象赋值呢(比如如下代码,通过php获取的$results,往postdata这个对象里赋值,以便sendAction.php能够接受到这个value)?下面这段代码显示key对应的results传过去了,但是对应的results的value没有传过来,在后端打印的话,显示为[object object]
function doAction(id){
var url = 'sendAction.php';
var postdata = $("#form").serializeArray();
postdata[postdata.length]={name:'id',value:id};
var results = $results))?>;
postdata[postdata.length]={name:'results',value:results};
$.ajax({
type: "POST",
url: url,
data:postdata,
//dataType:"json",
success:function(){
alert("发送成功");
};
});
}
回复内容:
目前的情况是这样的,后端采用PHP的YII框架,通过view方式将数据返回给前端。
其中有一个form表单,通过绑定onclick事件,把php获取过来的数据请求到另外一个后端,即如下的sendAction.php。
问题:通过jQuery的serializeArray()方法赋值后,生成了一个对象,请问如何往这个对象赋值呢(比如如下代码,通过php获取的$results,往postdata这个对象里赋值,以便sendAction.php能够接受到这个value)?下面这段代码显示key对应的results传过去了,但是对应的results的value没有传过来,在后端打印的话,显示为[object object]
function doAction(id){
var url = 'sendAction.php';
var postdata = $("#form").serializeArray();
postdata[postdata.length]={name:'id',value:id};
var results = $results))?>;
postdata[postdata.length]={name:'results',value:results};
$.ajax({
type: "POST",
url: url,
data:postdata,
//dataType:"json",
success:function(){
alert("发送成功");
};
});
}
var results = $results))?>;
相当于 var results = {results: theJsonObject}; 对吧?
而http协议传输数据的时候是不可能把数组传递给php的,而是特定格式的字符串,也许是json字符串,也许是xml,也许是常见的 key1=value1&key2=value2 方式,没问题吧?
所以,ajax提交的时候必然会把postdata转换为字符串,而此时postdata是一个嵌套数组的时候,也许会发生问题,所以导致了你遇到的问题。
建议把上面那行修改成
var results = '$results))?>';
这样就相当于var results = '{results: theJsonObjct}',是一个普通的字符串了,php端得到之后再json_decode一下就可以恢复,你觉得呢?
内容总结
以上是互联网集市为您收集整理的javascript-jQuery的serializeArray对象赋值问题全部内容,希望文章能够帮你解决javascript-jQuery的serializeArray对象赋值问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。