JavaScript和函数变量

时间:2011-09-19 17:11:10

标签: php javascript variables

让我们说我有一个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)

2 个答案:

答案 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”值确实是一个坏主意,但它不会导致这种行为。我怀疑可能还有其他代码可以解释更多。我会在这里留下这个答案,但没有人应该投票支持: - )