【发布时间】:2013-04-03 17:14:21
【问题描述】:
我正在使用 ajax/json 将值发送到 php 函数,然后该函数将在页面上显示数据。我正在发送两个值$hours 和$memberID,但我似乎只能检索$hours 而不是$memberID。我通过 Firebug 运行该页面,在 javascript 页面上,两个变量的值在发送之前就被读取了。在 PHP 表单中,我运行了多个条件/回显语句以打印出这两个值,但仅显示 $hours。有什么想法吗?
PHP:
$result = array();
if(!empty($_POST['hours'])) {
$result['type'] = "success";
$result['memberID'] = (int)$_POST['memID'];
$result['hours'] = (int)$_POST['hours'];
$result = json_encode($result);
echo $result;
}
Javascript:
//numberofMembers is the total number of entries in the database
function subtractHours(numberofMembers) {
document.body.style.cursor = "wait";
var hours = document.getElementById("hours");
var i = 1;
var studentID;
while(i < numberofMembers) {
studentID = document.getElementById("member"+i);
alert(studentID.value);
if(studentID && studentID.checked) {
$.ajax({
type : 'post',
datatype: 'json',
url : 'hours_subtract.php',
data : {hours : hours.value, memID : studentID.value},
success: function(response) {
if(response == 'success') {
alert('Hours subtracted!');
} else {
alert('Error!');
}
}
});
//$.post( "subtract.php", {person: personId, personSalary: personSalary} );
}
i++;
}
}
PHP(HTML 表单):
echo "<input type='checkbox' name='member{$attNumber}' id='member{$attNumber}' value=$studentID/>$attendees<br />";
编辑:如果我运行var_dump($_POST['memberID']);,它会打印出NULL。如果我运行var_dump($_POST),它会打印出array(2) { ["hours"]=> string(1) "1" ["member3"]=> string(8) "5101813/" }。
编辑:我添加了使用member3 的PHP 代码。
编辑 2:这就是整个 Javascript 函数。 PHP 代码是我处理数据的全部。
【问题讨论】:
-
如果您执行
var_dump($_POST['memberID']);会发生什么?var_dump($_POST);中显示的内容怎么样? -
你的sql查询在哪里?
-
根据您的编辑 - ajax 请求没有发送
memberID。member3来自哪里?我在你的数据中没有看到。 js中memberID.value等于什么? -
@Daniel A. White,我的意思是从 URL 中检索数据,后面的 SQL 查询是为了根据这里的数据从数据库中检索数据。
-
我已提交修改以删除对 MySQL 的引用。这纯粹是 PHP 无法获取您发送的数据的问题