這是我使用的html表單。如何在jQuery中傳遞函數變量?
<label>Your Username:</label><input id="username" name="username" type="text" onchange="return ajax ('username');" />
這是我在php中的ajax檢查文件。
if ($_REQUEST['username']) {
$q = $dbc -> prepare("SELECT username FROM accounts WHERE username = ?");
$q -> execute(array($_REQUEST['username']));
if (strlen($_REQUEST['username']) < 3) {
echo '<div class="error">Has to be at least 3 characters</div>';
}
elseif ($q -> rowCount() > 0) {
echo '<div class="error">Username already taken</div>';
}
else {
echo '<div class="success">Username available</div>';
}
}
而且我的jQuery Ajax請求......
function ajax (input) {
var val = $('#'+input).val();
$('.loading').fadeIn().delay(100);
$.post("ajax.php", {
username: val,
},
function (response) {
$('.error, .success').hide();
setTimeout(function(){
$('.loading').hide();
finishAjax(input, response);
}, 1000);
});
return false;
}
function finishAjax(id, response) {
$('#'+id).after(response).fadeIn(2000);
}
在我的形式,我打電話與變量名Ajax請求。
在我的ajax.php中,如果請求被命名爲username,則會正確驗證用戶名。
我想顯示在jQuery代碼到位用戶名的可變投入,所以我可以使用這個腳本的其他驗證和傳遞變量如電子郵件,或密碼,該腳本將仍然運行爲值輸入的將是它需要的。
如果這是有道理的。
謝謝你的時間。
這似乎不起作用我完全按照你鍵入的內容,而ajax調用失敗。 – carlgcode
嗯,這會發送'input'的值作爲參數名稱。不知道這是你真正想做的。 –
如果您不提供更多信息,我無法爲您提供幫助。我發佈的是你在你提交的代碼中所做的修改。也許你必須調整你沒有發佈的其他東西。 –