【发布时间】:2013-02-04 17:39:51
【问题描述】:
我有一个简单的函数,它将多个输入的值和 id 编译到一个对象中,然后将它们传递给一个 AJAX 函数。不幸的是,我无法正确发布数据。处理页面肯定被调用,变量进入js(对象在控制台中看起来是正确的),但是所有变量在处理页面上似乎都是空白的。
脚本:
$("#" + buttonId).find(".submitValue").each(function() {
inputId = $(this).attr("id").replace(buttonId + "-", "");
inputValue = $(this).val();
var data = {};
data[inputId] = inputValue;
dataObject.push(data);
});
$.post(
'ajax/' + buttonId + '.php',
{
'nextForm': formNumber,
dataObject: dataObject
},
function (response) {
$("#" + buttonId).append(response);
}
);
相关的php处理页面(变量比这个多很多,但看起来都一样——这个例子中的id是“timeBlockLocation”、“appointmentAddress1”、“appointmentAddress2”)——已经创建了连接
$nextForm = $connection->real_escape_string($_POST["nextForm"]);
$timeBlockLocation = $connection->real_escape_string($_POST["timeBlockLocation"]);
$appointmentAddress1 = $connection->real_escape_string($_POST["appointmentAddress1"]);
$appointmentAddress2 = $connection->real_escape_string($_POST["appointmentAddress2"]);
这是 $_POST 处理页面上的 var_dump:
array(2) {
["nextForm"]=>
string(1) "6"
["dataObject"]=>
array(3) {
[0]=>
array(1) {
["timeBlockLocation"]=>
string(1) "1"
}
[1]=>
array(1) {
["appointmentAddress1"]=>
string(4) "TEST"
}
[2]=>
array(1) {
["appointmentAddress1"]=>
string(5) "TEST2"
}
}
}
【问题讨论】:
-
看来您应该使用
$_POST["dataObject"]["timeBlockLocation"]、$_POST["dataObject"]["timeBlockLocation"]等。执行var_dump($_POST)以快速了解其他情况。 -
我用 var_dump 更新了帖子。如您所见,我将此功能与多个处理页面一起使用,因此输入并不总是一致的。预测它们的顺序并在处理页面上指定一个数组编号有点困难。
-
我最终成功使用了:$timeBlockLocation = $connection->real_escape_string($_POST["dataObject"][0]["timeBlockLocation"]);如果可能的话,我很想摆脱额外的参数。否则,这使我得到了答案。如果您为我创建答案,我可以将您标记为正确。
标签: php jquery ajax object post