我一整天都想弄清楚这一点,而且我正在撞墙(用我的头)。
我有这个HTML:
<!DOCTYPE html>
<html>
<head>
<title>Construct Films - Interface</title>
<script src="jQuery.js"></script>
<script>
$(document).ready(function(){
var oXHR;
$("#timeSel").submit(function(event){
if (oXHR){
oXHR.abort();
}
var $form = $(this);
var $inputs = $form.find("input, select, button, textarea");
var serializedData = $form.serialize();
$inputs.prop("disabled", true);
var iDate = $("input#imageDate").val();
oXHR = $.ajax({
url: "fetch_images.php",
type: "post",
data: serializedData
});
oXHR.done(function (response, textStatus, jqXHR){
// log a message to the console
$("#output").text(response);
console.log("Hooray, it worked!");
});
oXHR.fail(function (jqXHR, textStatus, errorThrown){
// log the error to the console
console.error("The following error occured: "+textStatus, errorThrown);
});
oXHR.always(function () {
// reenable the inputs
$inputs.prop("disabled", false);
});
event.preventDefault();
});
});
</script>
</head>
<body>
<div id='usrSelection'>
<form id="timeSel">
Select date: <input id="imageDate" name="imageDate" type="date">
<input type="submit" value="Send">
</form>
<div id='output'></div>
</body>
</html>
这是我的PHP:
<?php
include 'connect.php';
$username = mysql_real_escape_string($username);
$imageDate = mysql_real_escape_string($_POST['iDate']);
$result = mysql_query("
SELECT
*
FROM
images AS i
INNER JOIN
users AS u ON i.userID = u.UserID
WHERE
u.username = '$username'
AND
i.imageDate = '$imageDate'
ORDER BY
imageTime
ASC
") or die(mysql_error());
// populate the imageSelector div with a time selector
while ($row = mysql_fetch_assoc($result)) {
echo $row['imageTime'];
//echo "<option>" . $row['imageTime'] . "</option>";
}
?>
我在控制台收到消息&#34; Hooray,它有效!&#34;但我没有从MySQL查询中获得任何实际数据,或者SQL错误......我是AJAX的新手,并试图弄清楚为什么这不起作用。 如果我将php页面更改为
之类的内容<?php
echo "some stuff";
>
然后我得到那个返回输出div没问题。 谢谢你的帮助。 格雷厄姆
答案 0 :(得分:2)
您的查询不会返回任何结果,可能是因为以下原因:
$imageDate = mysql_real_escape_string($_POST['iDate']);
应该是
$imageDate = mysql_real_escape_string($_POST['imageDate']);
因为没有iDate表单输入。
此外,$username
似乎未在任何地方设置。