我试图评估id的值,它应该在文章中从jQuery传递给PHP。
调用正在返回{'id':'99'},如果id不等于0,则可以。我想知道为什么在我的($x == "0")函数中没有将true计算为true。
任何帮助都将不胜感激!提前谢谢。
jQuery:
$( document ).ready(function() {
$.ajax({
url: '/more.php',
type: 'POST',
data: JSON.stringify({"id" : "0"}),
success: function(data) {
$("body").append(data);
}
});
});PHP:
if (isset($_POST['id'])) {
$con=mysqli_connect("localhost","user","pass","schema");
getmore($_POST['id']);
function getmore($x) {
if ($x == "0") {
$sqldata = mysqli_query($con,"SELECT * FROM IRCLOG WHERE DATETIME >= date_sub(curdate(),interval 1 day)");
}
else {
$sqldata = mysqli_query($con,"SELECT * FROM IRCLOG WHERE DATETIME >= date_sub(curdate(),interval 1 day)");
}
// your business logic
$rows = array();
while($r = mysqli_fetch_array($sqldata)) {
$rows[] = $r;
}
echo json_encode($rows);
}
}
else {echo "{'id':'99'}";}发布于 2014-02-18 04:09:19
我认为这可能是因为PHP正在将$_POST['id']转换为整数。尝试以下几点:
function getmore($x) {
$x = intval( $x );
if ($x == 0) {另一个原因可能是AJAX不正确地发送数据。试着使用:
data: {id : "0"}在AJAX请求中。
AJAX调用中的data设置接受PlainObject或String参数。从医生那里:
如果不是字符串,则将其转换为查询字符串。它被附加在url上,用于获取请求。请参阅
processData选项以防止这种自动处理。对象必须是键/值对。如果值是数组,则jQuery根据传统设置的值以相同的键序列化多个值(如下所述)。
发布于 2014-02-18 05:24:07
你为什么不用
$(document).ready( function() {
var id_main = 0;
$.ajax ({
type: "POST",
url: "/more.php",
data: { id: id_main },
});
});发布于 2014-02-18 04:11:45
像这样发送你的数据。数据:{"id“:"0"},
https://stackoverflow.com/questions/21844106
复制相似问题