所以我正在学习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.php
和0
或1
的值。我所做的解决这个问题是: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";
}