我有1个文件,它们使用PhP,JavaScript,HTML,AJAX,CSS,MySQLi和SQL,它们基本上是一个包含某些字段的页面,然后它使用AJAX将信息发送到数据库,无需刷新页面即可进行连接。
一切正常,但我无法通过<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="ultras" id="ultras1">
<div class="ultra" id="ultra1"> </div>
<div class="ultra" id="ultra2"> </div>
<div class="clearFloat"></div>
</div>
<div class="ultras" id="ultras2">
<div class="ultra" id="ultra3"> </div>
<div class="ultra" id="ultra4"> </div>
<div class="clearFloat"></div>
</div>
显示错误。我通过更改or die()
中的一个值来测试它,这使得它不向数据库发送信息,但是用户没有ideia,因为没有错误消息。如何让它抛出错误?
我没有想到我做错了什么,但如果我不得不打赌那将是AJAX没有刷新页面或其他东西。我已经看到了一些问题,我确信他们会解释这个问题,但jQuery总是让我困惑。
这是我的代码,经过一些修改以减少不重要的东西:
my_table(...)
编辑以更好地解释这种情况:
如果我使用这个简单的代码,它可以正常工作:
<?php
if(isset($_POST["name"]) && !empty($_POST["name"])) {
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
mysqli_set_charset($link, "utf8");
// code
mysqli_query($link, "INSERT INTO my_table(...)values(...)") or die(mysqli_error($link));
mysqli_close($link);
exit;
}
?>
<html>
<head>
<meta charset="UTF-8">
<script>
function AJAX() {
// code
var xhttp = new XMLHttpRequest();
xhttp.open('POST', 'my_file.php', true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhttp.send(...);
}
</script>
</head>
</body>
<!-- code -->
<button onclick="AJAX()">Send</button>
</body>
</html>
但是,例如,当我将<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
mysqli_query($link,"INSERT INTO my_table(Name) VALUES ('Bob')") or die(mysqli_error($link));
mysqli_close($link);
?>
更改为不存在的错误名称时,它会在文档my_table
中写入。虽然在我的文件中它根本不会写/显示/什么都没有,但它会让用户认为它不起作用。
答案 0 :(得分:0)
这应该警告错误:
var xhttp = new XMLHttpRequest();
xhttp.addEventListener("error", function(event) {
alert('an error occured');
});
xhttp.open('POST', 'my_file.php', true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhttp.send(...);
您可以在此处找到有关eventListener的所有信息:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
请记住,此错误事件仅在网络故障时触发。如果您需要处理不同的http代码,可以在此处找到一个很好的示例:XMLHttpRequest (Ajax) Error