所以现在我有一个ajax调用,它将ID从一个按钮发送到php脚本并返回食物结果。如果我使用 ItemID 和 int 调用它,它会返回 itemID 的行。但是,如果我像下面这样将其更改为 ItemName,它不会返回任何行。在 consol 中,当我使用 ItemName 时,实际上没有返回任何内容,但是如果我让它在$STMT之前打印编码$ID那么它表明正在传递正确的字符串
if(isset($_POST['ID']))
{
$ID = $_POST['ID'];
$stmt = $mysqli->query("SELECT * FROM group2.menu WHERE ItemName = $ID ");
if($stmt->num_rows)
{
$row = $stmt->fetch_assoc();
echo $row;
print json_encode($row);
}
}
AJAX(如果相关)
$('.check').click(function(){
var thisID = $(this).attr('id');
alert(thisID);
$.ajax({
type: "POST",
crossDomain: true,
url: "http://csmaster.sxu.edu/group2/group2/CougarLunch/retrieveColumn.php",
data:{ ID: thisID},
cache: false,
async:true,
datatype: "jsonp",
success: function(data)
{
console.log(data);
alert(data);
//
}
});
});
按钮的 HtML 第一个有效,第二个不起作用
<input type="checkbox" name="value" id="27" class="check">
<label for="27">pizza</label>
<input type="checkbox" name="value" id="scrambled egg" class="check">
<label for="scrambled egg">Scrambled Egg</label>
ItemName 是一个 varchar 字段吗?如果是这样,你有没有尝试过用引号括住你的字符串?
$stmt = $mysqli->query("SELECT * FROM group2.menu WHERE ItemName = '$ID' ");