我試圖做一個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"]);
正在傳遞請求中的數據,所以我不知道它爲什麼不識別它。我真的不明白這個的問題,因爲我已經在腳本,看起來很像是彼此Ajax和它的作品完美...
有什麼想法? 謝謝!
哦....我不知道有關負載....我真的不明白怎麼「完成(功能(數據)」的工作....我想顯示爲一條消息說名取,但我不知道怎麼我的PHP「連接」到腳本來做到這一點......裏面有什麼功能(數據) – inBlackAndWhite 2013-04-28 19:00:23
@MF - ?現在你知道,負載()是$就一個快捷方式!該做的功能是一樣的在你的代碼的成功的功能,並且數據的任何PHP文件的輸出,你的情況'回聲「用戶名已存在。」;'就是返回到完成()函數 – adeneo 2013-04-28 19:09:52
哦,這就是你從php獲取東西的方式!!這是完美的!作品像一個魅力!!!謝謝! – inBlackAndWhite 2013-04-28 19:14:05