2013-03-26 7 views
0

Я пытаюсь сделать проверку доступности электронной почты с помощью ajax. Я хочу принять входное значение и отправить его на php, где он будет проверен, если он находится в базе данных, но я не могу его сделать. Когда я тестирую скрипты с Firebug, есть ответ, но вывод всегда один и тот же, независимо от того, существует ли это письмо или нет. Это всегда показывает мне, что не существует.Проверка наличия электронной почты в реальном времени

Стол называется компанией. Поле таблицы для электронных писем - электронная почта.

Подключение к базе данных в порядке. Я думаю, проблема в моем коде ajax, потому что он всегда дает мне выход «TAKEN».

Это мой PHP код:

<?php 
// This is a sample code in case you wish to check the username from a mysql db table 

if(isset($_POST['Email'])) 
{ 
$email = $_POST['Email']; 

$dbHost = 'localhost'; // usually localhost 
$dbUsername = 'root'; 
$dbPassword = 'password'; 
$dbDatabase = 'php_test'; 

$db = mysql_connect($dbHost, $dbUsername, $dbPassword) 
or die ("Unable to connect to Database Server."); 
mysql_select_db ($dbDatabase, $db) 
or die ("Could not select database."); 

$result = mysql_query("select Email from company where Email='".$email."'") 
or die(mysql_error()); 

if(mysql_num_rows($result)) 
{ 
echo 'NOT OK'; 
} 
else 
{ 
echo 'OK'; 
} 
} 
?> 

Это Аякс код

$(document).ready(function() { 

$("#email").blur(function(){ 
    $.ajax({ 
    type: "POST", 
    url: "unique_check.php", 
    data: {Email: $("#email").val()}, 
    dataType:"json", 
    success: function(msg){ 

     if(msg == "OK"){ 
      alert("FREE") 
     }else{ 
      alert("TAKEN") 
     } 
    } 
    }); 
});  
}); 

Пожалуйста, скажи мне, где моя ошибка, или если есть лучший способ, дать. Имейте в виду, что я новичок в ajax и php. Большое спасибо!

ответ

0

Я думаю, что вы хотите:

if($result != false && mysql_num_rows($result) > 0) { 
echo 'NOT OK'; 
} else { 
echo 'OK'; 
} 

Если это не сработает, попробуйте вторя из вашего запроса, чтобы убедиться, что это то, что вы хотите.

+0

Теперь я увидел, что ajax даже не принимает значение ввода электронной почты. Я думаю, проблема в аяксе. –

0

Одна из проблем заключается в том, что в вашем Javascript-коде вы устанавливаете email при загрузке страницы, что бывает пустым. Вам нужно снова установить email внутри вашей функции .blur(), чтобы захватить значение, когда поле действительно размывается.

+0

Несчастливо, он не работает снова. С firebug я вижу, что значение ввода электронной почты не принимается, и я не могу понять, почему. Я работаю над этим весь день! –

+0

Измените свой PHP-код на просто 'echo $ _POST ['email'];' и затем получите javascript 'alert (msg)', чтобы узнать, какое значение получает сервер. – Tim

+0

Что бы я ни пишу, предупреждение равно null? Где проблема? –

Смежные вопросы