【发布时间】:2012-07-11 18:44:39
【问题描述】:
我正在尝试将我在 JavaScript 中创建的两个数组传递给另一个 php 页面。我对此进行了研究,但我不知道我做错了什么。我一直在关注许多论坛和教程,但我似乎无法让我的工作。 我有一个表格,你可以添加额外的行,这就是我有数组的原因。当用户在“process.php”上按下提交时,这个函数被调用:
$("#submit").click(function() {
var accosArray = new Array();
accomp = $("#TextBoxDiv1 textarea[name=sacco]").val();
accosArray.push(accomp);
alert(accosArray[0]);
for (var i = 2; i < counter; i++) {
accomp = $("#TextBoxDiv1" + i + " textarea[name=sacco]").val();
accosArray.push(accomp);
alert(accosArray[i - 1]);
}
var tasksArray = new Array();
taskSelect = $("#TextBoxDiv1 select[name=lstDropDown_A]").val();
if (taskSelect == "") {
//If user entered a task
taskOther = $("#TextBoxDiv1 input[name=textboxoption_A]").val();
tasksArray.push(taskOther);
alert(tasksArray[0]);
} else {
tasksArray.push(taskSelect);
alert(tasksArray[0]);
}
for (var i = 2; i < counter; i++) {
taskSelect = $("#TextBoxDiv1" + i + " select[name=lstDropDown_A]").val();
if (taskSelect == "") {
//If user entered a task
taskOther = $("#TextBoxDiv1" + i + " input[name=textboxoption_A]").val();
tasksArray.push(taskOther);
alert(tasksArray[i - 1]);
} else {
tasksArray.push(taskSelect);
alert(tasksArray[i - 1]);
}
}
$.post('127.0.0.1/Working Files/Best Files/In Progress/status.php';, {
task: tasksArray
}, function(result) {
alert(result[0]);
}, 'json');
});
这会将用户输入放入数组中,然后我尝试在最后使用 $.post 方法以便能够将数组传递到下一页,但我不确定语法是否正确。
然后它被传递到下一个文件“status.php”,它在开头声明:
<?php
session_start();
$task=$_POST['task'];
echo json_encode($task);
?>
回显显示为“null”。
请让我知道我做错了什么!
提前致谢!!
【问题讨论】:
-
您的
$.post行包含一个放错位置的分号。 -
现已移除。仍然回显“null”
-
涉及多个步骤,错误可能在其中任何一个中。我个人会使用 Firebug 或类似工具来查看正在交换的实际请求和响应数据。并使用
console.log而不是alert(),因为它可以显示的不仅仅是纯字符串。 -
回显
$_POST['task']。最多是json_decode($task)而不是编码。 -
所以我正在使用萤火虫,我发现了错误在哪里,但我不明白。这就是所说的:POST .../status.php 和 jquery(第 8240 行)。来自 jquery 的行说:
xhr.send( ( s.hasContent && s.data ) || null );有什么想法吗?
标签: php javascript json post