我确定这个愚蠢的问题有一个简单的答案,但我已经搜索了高低,并且无法弄清楚为什么这不起作用。
$tutorid = $_GET['userid'];
var_dump($tutorid);
//populate user tutoring subjects
if( isset($_POST['a'])) {
$currentsubjects = get_current_user_subjects( $tutorid );
unset($_POST['a']);
echo json_encode($currentsubjects); return;
}
我有一个简单的AJAX
函数,它将$_POST['a']
设置为等于某事物。 var_dump($tutorid)
正确显示网址中的ID。但是$tutorid
中的get_current_user_subjects
正在发送NULL
。
如果我尝试这样var_dump
来检查$tutorid
$tutorid = $_GET['userid'];
//populate user tutoring subjects
if( isset($_POST['a'])) {
echo json_encode($tutorid); return;
// $currentsubjects = get_current_user_subjects( $tutorid );
// unset($_POST['a']);
// echo json_encode($currentsubjects); return;
}
然后我得到NULL
。如果我在get_current_user_subjects( $tutorid )
中的tutorid中硬编码(比如添加15或其他东西),该函数会像预期的那样将数据返回到console.log,但使用变量$tutorid
会完全停止。我无法弄清楚为什么会这样!有人请赐教。
以下是AJAX。它可以在其他页面上找到,所以我假设问题是$_GET
$.ajax({
url: 'profile.php',
method: 'post',
data: "a=true",
dataType: 'json',
success: function (x) {
console.log(x);
},
error: function(a, b, c) {
console.log(a);
console.log(b);
console.log(c);
}
答案 0 :(得分:0)
也许你可以使用这种方法。因此,POST
userid
$.ajax({
url: 'profile.php',
method: 'post',
data: {a: a, userid:userid},
dataType: 'json',
success: function (x) {
console.log(x);
},
error: function(a, b, c) {
console.log(a);
console.log(b);
console.log(c);
}
所以在行动之前以你的形式。你可以用隐藏的形式设置userid
<input type="hidden" name="userid" value="<?php echo $userid;?>" />
答案 1 :(得分:0)
将userId保存到会话并从那里获取。或者使用ajax请求传递userId。我不认为你的代码中的逻辑是正确的,就像你提供的信息一样。尝试在您的ajax方法发布时,在请求的页面中从$ _GET获取id,并且没有userId与请求一起传递,这是不正确的。据我所知,如果对该页面的请求不是&#39; get&#39;,那么$ _GET数组中就没有数据。 Session提供了InterPageCommunication。使用会话。