0

我已尝试删除JSON.stringify并更改帖子以将更改缓存设置为 false 和 true。我不知道需要发生什么。它总是转到我的 php 中的 else 语句并返回默认 JSON。我已经在我的 php 中使用通配符允许跨域,所以这绝对不是问题。

代码:

$(document).ready(function() {
$('.check').click(function(){

var thisID    = $(this).attr('id');
alert(thisID);
$.ajax({
    type: "POST",
    crossDomain: true,
    url: "retrieveColumn.php",
    data: JSON.stringify({ ID: thisID}),
    cache: true,
    async:true,
    datatype: "json",
    success: function(data)
    {
        console.log(data);
        alert(data);
    }
    
});
}); 
});

PHP 总是进入 else 条件:

if(isset($_POST['ID']))
{
$ID = $_POST['ID'];

{

$stmt = $mysqli->query("SELECT * FROM  group2.menu  WHERE ItemID = $ID ");

 if($stmt->num_rows) //if there is an ID of this name
 {  
$row = $stmt->fetch_assoc();
echo $row;
 print json_encode($row);   

}
}
 }
else
{
 $stmt = $mysqli->query("SELECT * FROM  group2.menu  WHERE ItemID = 2");
  $row = $stmt->fetch_assoc();
 print json_encode($row);   
}
4

2 回答 2

1

除非这是较大文档的一部分,否则您可能会有不必要的括号,这可能会导致问题。

if(isset($_POST['ID'])){
$ID = $_POST['ID'];

{ /* <!-- HERE! What is this?? */

$stmt = $mysqli->query("SELECT * FROM  group2.menu  WHERE ItemID = $ID ");

 if($stmt->num_rows) //if there is an ID of this name{  
 $row = $stmt->fetch_assoc();
 echo $row;
 print json_encode($row);   

}
}
 }
else
{
 $stmt = $mysqli->query("SELECT * FROM  group2.menu  WHERE ItemID = 2");
  $row = $stmt->fetch_assoc();
 print json_encode($row);   
}
于 2013-11-01T00:26:44.650 回答
0

您不需要在此处将您作为数据提交的对象进行字符串化:

data: JSON.stringify({ ID: thisID}),

利用:

data: { ID: thisID},
于 2013-11-01T00:22:45.340 回答