Не ясно, какой тип данных возвращается. Вы указываете text
в своем коде еще, если это json
, это изменит вещи.
Пожалуйста, проверьте с помощью следующего кода:
function validateForm(){
var email = document.forms["signupform"]["email"].value;
var result = false;
if (email != ""){
$.ajax({
type: "POST",
url: "/CheckEmail2.php",
data: { "User_Email": email },
dataType: "text",
success: function(resp){
console.log(resp);
if (resp != "Found"){
result = true;
}
},
error: function(data, status){
console.log(data, status);
}
}); //end Ajax
}
return result;
}
При тестировании вы должны увидеть результаты в консоли. Также не ясно, как вы планируете использовать вашу функцию, но я предполагаю, что она должна возвращать true
или false
, поэтому это должно быть сделано вне вызова $.ajax()
.
Я не уверен, но я предполагаю, что вы захотите вернуть true
, если возвращается Found
, но это не та логика, которую вы используете. Так что подумайте, как вы хотите, чтобы это работало.
Обновление
Я бы посоветовал следующее в вашем PHP:
<?php
$search = array(
"term" => "",
"found" => false,
"results" => ""
);
if(isset($_POST['User_Email'])){
$search['term'] = $_POST['User_Email'];
if(strpos($_POST['User_Email'], "@")){
$search['found'] = true;
$search['results'] = $_POST['User_Email'];
}
}
header("Content-type:application/json");
echo json_encode($search);
?>
Это гарантирует, что вы возвращаете данные JSON, и вам будет проще обратиться к нему в коде AJAX. Сделайте несколько изменений примерно так:
function validateForm(){
var email = document.forms["signupform"]["email"].value;
var result = false;
if (email != ""){
$.ajax({
type: "POST",
url: "/CheckEmail2.php",
data: { "User_Email": email },
dataType: "json",
success: function(resp){
console.log(resp);
if(resp.found){
result = true;
}
},
error: function(data, status){
console.log(data, status);
}
}); //end Ajax
}
return result;
}
Надеюсь, это поможет.