Я пытаюсь сделать запрос ajax, чтобы проверить, существует ли имя пользователя уже в базе данных, но я получаю от него странное поведение. Вот мой сценарий:
$("#username").blur(function()
{
$.ajax({
type: "POST",
url: "check_username.php",
data:
{
username: $("#username").val()
},
success: function()
{
$("#username_taken").load("check_username.php").show();
},
});
return false;
});
и мой PHP:
<?php
if (($connection = mysql_connect("database", "user", "pass")) === false)
{
die('Could not connect: ' . mysql_error());
}
if ((mysql_select_db("database", $connection)) === false)
{
die ("Could not select database : " . mysql_error());
}
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$username = mysql_real_escape_string($_POST["username"]);
$check = mysql_query("SELECT username FROM users WHERE username = '$username'");
$check_num_rows = mysql_num_rows($check);
if ($check_num_rows == 1)
{
echo "Username already exists.";
return false;
}
}
?>
Когда я смотрю на вкладке сети, я вижу два запросов на отправку, а GET и POST, с одной и той же информацией, я не понимаю почему. И мой код не работает вообще, когда у меня есть
if ($_SERVER["REQUEST_METHOD"] == "POST")
но если я пытаюсь
if ($_SERVER["REQUEST_METHOD"] == "GET")
это работает, и у меня есть ошибка:
Notice: Undefined index: username in check_username.php on line 20
Line 20: $username = mysql_real_escape_string($_POST["username"]);
Это передается в данных в запросе, поэтому я не знаю, почему он его не распознает. Я действительно не понимаю, в чем проблема с этим, потому что у меня есть еще один аякс в этом скрипте, который очень похож на этот, и он отлично работает ...
Любые мысли ?? Спасибо!
oh .... Я не знал, что о загрузке .... Я действительно не понимаю, как это делается (функция (данные) "работает .... то, что я хочу отобразить, - это сообщение, говорящее имя пользователя принято, но я не знаю, как «подключить» мой php к скрипту, чтобы сделать это ... что внутри функции (данных)? – inBlackAndWhite
@MF - теперь вы знаете, load() - это ярлык для $ .ajax Выполненная функция такая же, как функция успеха в вашем коде, а данные - все, что выводит файл PHP, в вашем случае 'echo 'Username уже существует."; '- это то, что возвращается функции done(). – adeneo
Ооо, так вот как ты возвращаешь материал из php !! Это отлично! Работает как шарм !!! Спасибо! – inBlackAndWhite