让我们说我有一个html表格......
<input id="world" type="text" onblur="return hello ('world');" />
在我的剧本中我有
function hello (id) {
document.write(id);
}
按预期返回世界。如果我这样使用它......
function hello (id) {
var val = $('#' + id).val();
$.post("ajax.php", {
id: val,
});
}
然后id返回 Array ,如何让它像我想要的那样返回用户名。
感谢。
根据要求提供php方面的事情......
if (isset($_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>';
}
}
else {
echo $_REQUEST;
}
如果它应该像用户名那样等于那么ajax是成功的,否则它将回显{b}数组的$_REQUEST
的结果。
更新
调用该函数:
<input id="world" type="text" onblur="return ajax ('username');" />
原始功能:
function ajax (id) {
var val = $('#' + id).val();
$('.loading').fadeIn().delay(100);
$.post("ajax.php", {id: val};
}
我在Array上做了一个var转储,它返回输入到textfield的字符串?不是我传递给函数的id?!?为什么会这样?
var_dump($_REQUEST)
array
'id' => string 'dadadas' (length=7)
答案 0 :(得分:2)
您的PHP代码正在检查username
:
if (isset($_REQUEST['username'])) {
更改代码以提供username
而不是id
function hello (id) {
var val = $('#' + id).val();
$.post("ajax.php", {
username: val
});
}
$_REQUEST
是一个数组,您echo
因为未找到请求参数username
。
答案 1 :(得分:0)
您可能在页面上有多个具有相同“id”值的元素。这不是有效的标记,因为“id”值在整个页面中必须是唯一的。
编辑 - 重新使用“id”值确实是一个坏主意,但它不会导致这种行为。我怀疑可能还有其他代码可以解释更多。我会在这里留下这个答案,但没有人应该投票支持: - )