JavaScript和函数变量
问题描述:
让我们说我有这样的HTML表单上...JavaScript和函数变量
<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阵列,我怎样才能使它返回用户名像我想它。
谢谢。
按照要求的事情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是全成否则将呼应$_REQUEST
其结果是目前阵列。
UPDATE
调用函数:
<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};
}
我做的阵列一个变种转储,并返回已输入到字符串文本字段?不是我传递给函数的ID?!?这是为什么发生?
例var_dump($_REQUEST)
array
'id' => string 'dadadas' (length=7)
答
你的PHP代码检查username
:
if (isset($_REQUEST['username'])) {
更改您的代码提供username
代替id
function hello (id) {
var val = $('#' + id).val();
$.post("ajax.php", {
username: val
});
}
$_REQUEST
是一个数组,因为没有找到请求参数username
,因此您是echo
ing。
我认为它只会返回一个数组,如果它匹配多个元素来读取值。你有多少个元素id =“world”? – Rup
你需要显示更多的服务器端代码(ajax.php)...或者只是确保ajax.php返回你想要的值或者处理数组来打印值... – Tarek
提供的函数应该返回'undefined',而不是数组,因为这里没有return语句。这个代码是否发布了简化? – Tejs