如何在jquery中传递函数变量

How can I pass a function variable in jquery?

本文关键字:传递函数 变量 jquery      更新时间:2023-09-26

这是我正在使用的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代码中显示变量输入来代替用户名,这样我就可以使用此脚本进行其他验证,并将变量作为电子邮件或密码传递,脚本仍将运行,因为输入的将是它所需要的。

如果这有道理的话。

谢谢你抽出时间。

var data = {};
data[input] = $('#' + input).val();
$.post("ajax.php", data, function() {...

finishAjax(input, response);

检查输入arg wat ll u get,然后继续。。。。。删除附近的分号

 {username: $('#' + input).val(),}
as ,{ username: $('#' + input).val()},

您将获得o/p

您声明val是"input"的值,但从未使用过它。用户名的所有用法都应该可以访问变量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;
}

在调用$.post之前,创建一个空对象。

var data = {};

使用函数的参数作为对象的索引。

data[input] = val;

在$.post调用中,使用该对象而不是匿名对象文字。

$.post("ajax.php", data, function ...);

不过,如果你按照你描述的方式做事,你需要确保你正确地管理所有这些传递的参数。您确定您的PHP脚本能够处理所有可能传递到ajax函数的不同值吗?