Javascript 序列化jquery帖子,使其看起来像普通表单提交
我必须将jquery.post与一个php脚本集成,该脚本希望字段名是$\u post数组键,比如$\u post['field\u name']。如果我像这样写出键值对 例1:Javascript 序列化jquery帖子,使其看起来像普通表单提交,javascript,jquery,Javascript,Jquery,我必须将jquery.post与一个php脚本集成,该脚本希望字段名是$\u post数组键,比如$\u post['field\u name']。如果我像这样写出键值对 例1: $.post("http://localhost/post_handler", { 'foo' : 'bar' //<- key value pair }, function(data, status){ console.log(data); }, 'jso
$.post("http://localhost/post_handler", {
'foo' : 'bar' //<- key value pair
},
function(data, status){
console.log(data);
},
'json'
);
后端得到如下结果:
$_POST['post'] = 'field1=1&field2=2&field3=3'
我必须在后端拆分字段
对于这个项目,我无法访问背面,也无法控制服务器对帖子的处理。我需要后端像处理普通表单提交一样处理此问题。同样,我有数百个字段,所以我不想像例1那样写出来
我可能会做一个循环,但我认为必须有一个内置的方法来做这件事。您的第二个示例几乎是正确的,您只需要将
post
变量直接传递给$.post
的第二个参数,即不包装在{}
中。试试这个:
var post = $("form").serialize();
$.post("http://localhost/post_handler", post, function(data, status) {
console.log(data);
}, 'json');
您的第二个示例几乎是正确的,只需将
post
变量直接传递给$.post
的第二个参数,即未包装在{}
中。试试这个:
var post = $("form").serialize();
$.post("http://localhost/post_handler", post, function(data, status) {
console.log(data);
}, 'json');
正如我所评论的
在示例2中,post变量位于一个对象({})内,直接传递它:$.post(url,post,function,'json')
var post=$(“表单”).serialize();
$.post(”http://localhost/post_handler“,邮政,
功能(数据、状态){
控制台日志(数据);
},
“json”
);代码>
正如我所评论的
在示例2中,post变量位于一个对象({})内,直接传递它:$.post(url,post,function,'json')
var post=$(“表单”).serialize();
$.post(”http://localhost/post_handler“,邮政,
功能(数据、状态){
控制台日志(数据);
},
“json”
);代码>
删除post变量周围的大括号应该会得到预期的结果。。。如果将名称/值对分解为JS对象(即…{element:value,element2:value2}),则花括号将仅围绕post()语句的数据部分
$.serialize()返回一个字符串而不是对象(因此只需传递它而不将其设为对象
var post = $("form").serialize();
$.post("http://localhost/post_handler", post ,
function(data, status){
console.log(data);
},
'json'
);
删除post变量周围的大括号应该会得到预期的结果…如果将名称/值对作为JS对象(即…{element:value,element2:value2})进行拆分,则大括号只会环绕post()语句的数据部分
$.serialize()返回一个字符串而不是对象(因此只需传递它而不将其设为对象
var post = $("form").serialize();
$.post("http://localhost/post_handler", post ,
function(data, status){
console.log(data);
},
'json'
);
在示例2中,post变量位于对象({})内,直接传递:$.post(url,post,函数,'json');var post=$(“form”).serializeArray();
@Rogerolino.Thank。这很简单。如果您想回答这个问题,我会立即检查。@AuntJamaima好的,我添加了一个anwser。谢谢。在示例2中,post变量位于对象({})内),直接传递:$.post(url,post,函数,'json');var post=$(“表单”).serializeArray()
@rogeriolino.谢谢。这很简单。如果你想回答,我会马上检查。@AuntJamaima好的,我添加了一个anwser。谢谢。谢谢。这对我来说真的是一个非常简单的错误。谢谢。这对我来说真的是一个非常简单的错误。