这是我正在使用的html表单。
<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);
}
在我的表单上,我使用变量username调用ajax请求。
在我的ajax.php中,如果请求名为username,则会对用户名进行正确验证。
我想在jquery代码中显示变量输入来代替 username ,这样我就可以使用这个脚本进行其他验证,并将变量作为电子邮件或密码传递,脚本仍会运行因为输入的值将是它所需要的。
如果这是有道理的。
感谢您的时间。
答案 0 :(得分:2)
var data = {};
data[input] = $('#' + input).val();
$.post("ajax.php", data, function() {...
和
finishAjax(input, response);
答案 1 :(得分:0)
您声明val
是“输入”的值,但从不使用它。用户名的所有用法都应该可以访问该变量val
,因此请使用它。除非我误解你的问题,这样的事情(只改了一行):
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('username', response);
}, 1000);
});
return false;
}
答案 2 :(得分:0)
检查输入arg wat ll u get get then ..... 删除附近的分号
{username: $('#' + input).val(),}
as ,{ username: $('#' + input).val()},
你会得到o / p
答案 3 :(得分:0)
在你调用$ .post之前创建一个空对象。
var data = {};
使用函数的参数作为对象的索引。
data[input] = val;
在$ .post调用中使用该对象而不是匿名对象文字。
$.post("ajax.php", data, function ...);
但是,如果按照描述的方式执行操作,则需要确保管理所有正确传递的参数。您确定您的PHP脚本能够处理可能传递给 ajax 函数的所有不同值吗?