在第1页: 加载一个AJAX脚本加载Page2
在第2页: 将运行mysqli数据库查询,如果数据库查询成功,我想将成功响应发送回AJAX查询并重新加载页面。如果数据库查询失败,我想将失败响应发送回AJAX查询并重定向到失败页面。
这可能吗?我怎么写这个?我是AJAX的新手,已经阅读了一些AJAX脚本并阅读了文档,但我通过试验代码来找到最适合我的解决方案,从而学到最多。我玩了一些ajax脚本,但无法使它们中的任何一个正常工作,并且找不到任何能够满足我需要的东西。看起来这将是一个相当简单的ajax脚本,所以我希望有人可以帮助我。
答案 0 :(得分:0)
这是一个可能的jQuery解决方案。如果您想要纯JavaScript,请告诉我。
的index.html
<input type="text" id="input" />
<button type="button">Submit!</button>
scripts.js中
$('button').on('click',function() {
var val = $('#input').val();
sendQuery(val);
});
function sendQuery(x) {
var val = x;
$('body').load('query.php?input=' + val);
}
query.php
$mysqli = new mysqli('localhost','root','password','db');
$val = $_GET['input'];
$query = <<<Q
SELECT
*
FROM
table
WHERE
column = ?
Q;
$stmt = $mysqli->stmt_init();
if($stmt->prepare($query)) {
$stmt->bind_param("i",$val);
$stmt->execute();
while($stmt->fetch()) {
#if the query is successful
echo '<script>
$(function() {
location.reload();
});
</script>';
}
} else {
echo '<script>
$(function() {
window.location.href = "http://www.yoursite.com/errorpage.html";
});
</script>';
}
$mysqli->close();
我唯一不确定的是为什么你想用AJAX发回一个回复,然后转到一个全新的页面。对我来说,这似乎就是否定了你想要首先使用AJAX的原因。有什么想法吗?
以上所做的是使用jQuery将XMLHTTPRequest.responseText加载到正文中(reponseText是由php doc回应的脚本)。在这种情况下,在db成功的情况下,它会回显重新加载页面的脚本。如果发生故障,它会回显一个脚本,将用户移动到错误页面。