jQuery AJAX如何传递PHP echo to success参数



所以我正在学习ajax,并遵循一些我在网上找到的代码,但不知道如何从PHP传递值。

这是我的email。php

$conn = mysqli_connect($servername, $username, $password, $db);
$email = $_POST['email'];
$query = "SELECT * FROM registration WHERE email = '$email'";
$result = mysqli_query($conn,$query);
$count = mysqli_num_rows($result);
if ($count == 0) {
$data = json_encode(0); 
} else {
$data= json_encode(1);
}
mysqli_close($conn);
return data;

这是我的ajax

$.ajax({
url: "email",
type: "POST",
data: {
email: email,
},
cache: false,
success: function(data) {
alert("data: " + data); // I tried this one to check what is in data but it's not the values from the echo in PHP
if (data == 0) {
$('#message').html('available');
} else if (data == 1) {
$('#message').html('not available');
}
}
});

非常感谢您的帮助!谢谢你!

[!编辑[!])

对不起,我的问题不一样。我有一个template.php文件的整个HTML,其中包括我所有的PHP文件。下面是部分:

if (isset($_GET["route"])) {
if ($_GET["route"] == 'home' || $_GET["route"] == 'email' ||) {
include "modules/".$_GET["route"].".php";
}
}

现在alert(data)的值等于template.php01的值。我所做的解决这个问题是:data.slice(-1)lol不是一个很好的做法。所以如果你有其他的解决办法,我会很感激的。谢谢你!

你必须修改PHP文件

$data =  json_encode(0);

然后像这样返回PHP文件中的编码数据:

return $data;

所以当你向文件发出请求时,它将有一个可以在ajax中访问的返回类型。

您不必对数字进行编码。只需将数字作为字符串传递给echo语句。

$conn = mysqli_connect($servername, $username, $password, $db);
$email = $_POST['email'];
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$query = "SELECT * FROM registration WHERE email = '$email'";
$result = mysqli_query($conn,$query);
$count = mysqli_num_rows($result);
if($count==0){
echo "0"; 
} else{
echo "1";
}
mysqli_close($conn); 
} else {
echo "1";
}

最新更新