1

我的数据看起来像这样,它只是一个对象,里面有两个对象(每个对象代表一个表单的数据)。

Object {x__sf: Object, x__mx: Object}
  x__mx: Object
    country_id: "1"
    input1: ""
    input2: ""
    ...
  x__sf: Object
    ...

我想我必须在内存中制作一个临时表格并提交?我不确定循环数据并将隐藏字段添加到临时表单的安全方法。有这个功能吗?还是更好的方法?

我想这样做,但让它实际提交页面,因为服务器端有重定向逻辑。

$.post('/whatever.php', data);
4

3 回答 3

3

但是以下方法有什么问题?

服务器端:

<?php
// do some stuff
print "/redirect/to.php";
?>

客户端:

$.post("/whatever.php", data, function(data) {
    location.href = data;
});

或者更高级:

服务器端:

<?php
// do some stuff
header("Content-Type: application/json");
print json_encode(array(
    "success" => "/redirect/to.php"
));
?>

客户端:

$.post("/whatever.php", data, function(data) {
    if (data.success) {
        location.href = data.success;
    }
}, "json");
于 2012-11-19T15:35:45.957 回答
0

不要打扰循环......做这样的事情:

$('form').submit(function() {
  alert($(this).serialize());
  return false;
});

或者在你的情况下:

var data = $("#idOfForm").serialize();
于 2012-11-19T15:33:48.587 回答
0

您只想在发送数据之前对其进行字符串化:

$.post('/whatever.php', JSON.stringify(data));

在服务器端,您需要使用 PHPjson_decode()函数:

json_decode(http_get_request_body());
于 2012-11-19T15:41:42.680 回答