【发布时间】:2026-02-01 01:20:03
【问题描述】:
我使用下面的方法通过 Ajax(在 jQuery 中)将数据传递到 PHP 页面。 然后 PHP 页面将它们插入 MySQL 数据库(如果它们不存在)。
一切正常,但我无法取回我在 PHP 中回显的结果。
我认为在成功函数中可以使用一个简单的警报,但 我没有收到任何警报 - 无论是插入成功还是我故意提交已经存在的内容时。
有人可以帮我解决这个问题吗?
阿贾克斯:
$.ajax({
type: "post",
url: baseURL + "/ajax.php", // baseURL is the main URL, i.e. http://www.myurl.com
cache: "false",
data: {
email: email,
dob: dob
},
success: function(data){
alert(data);
},
error: function(){
}
});
PHP:
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$dob = $_POST["dob"];
$sql = "SELECT email FROM Users WHERE email = '" . $email . "'";
$query = $conn->query($sql);
if(mysqli_num_rows($query) > 0){
echo "record already exists";
}else{
$sql = "INSERT INTO Users (email, dob) VALUES ('" . $email . "', '" . $dob . "')";
if ($conn->query($sql)) {
echo 'update successful';
}else{
echo 'update failed';
};
}
$conn->close();
提前非常感谢, 迈克
【问题讨论】:
-
如果您使用的是chrome开发者工具或firebug,请查看网络日志,查看请求是否正确返回。在您的“响应”选项卡中,您应该能够看到这条回显消息。
-
谢谢,我正在使用 Chrome。会试试这个。
-
您是否尝试在当前域之外进行跨域 AJAX 调用?
-
嗯,通过删除 baseURL 并且只在 AJAX 调用中使用相对 URL,有什么区别吗?我可能误解了来自 IE 的错误消息。要在 chrome 中打开网络日志,只需右键单击页面上的任意位置并选择“检查元素”选项。在那里,您必须单击“网络”选项卡。现在发出 AJAX 请求,它会显示在这里。单击它可以获取状态、标题、响应等。