1

所以,我不确定我是否能做到这一点。如果没有,那么任何建议将不胜感激。如果这个问题很荒谬,请提前道歉......

我有一个在 php 中创建的数组,其中包含从数据库中填充的不同用户名。当用户提交表单时,我想使用 jQuery 检查提交的用户名是否已存在于已创建的数组中。我不太确定该怎么做。这就是我要去的地方。

PHP部分:

$existing_users = array();
$existing_users[] = $users; //this is reiterating in a while loop

HTML部分:

<input type='text' name='user_name' id='user_name' />

jQuery部分:

function checkAllFieldsForm() {

    if (jQuery.inArray($('#user_name').val(),$existing_users) == -1) {
            alert('no way this worked');
    }
};

不确定我是否应该改用 $.each 或其他东西......似乎我需要通过 id 访问数组 $existing_users 但我没有给它一个。我需要给它一个部门ID吗?

4

2 回答 2

3

您要做的是在服务器端将其创建为 javascript 数组。即让 php 将其作为 javascript 数组输出(通过循环数组值并将它们发送到 javascript 数组中,或通过以 JSON 编码输出数组)。然后它将在浏览器端可供javascript使用,一切都很好。PHP 变量本身在浏览器端不可用,因为 PHP 不会在那里运行并且在服务器发送网页之前完成运行。

看看:从 PHP 数组生成 JavaScript 数组

于 2013-01-13T07:00:18.720 回答
2

您必须将数组打印到 javascript 源中,以便 javascript 可以读取它。

应该是这样的:

var client_side_existing_users = <?php echo json_encode($existing_users); ?>;

if (jQuery.inArray($('#user_name').val(), client_side_existing_users) == -1) {
        alert('no way this worked');
}

(我称它为 client_side_existing_users 是为了非常清楚该变量存在于客户端/浏览器中,并且已经离开了服务器端世界)

请记住,用户将能够通过查看页面源来查看existing_users 的内容。如果有大量用户,这也可能使页面大小变大。我很想知道您为什么要这样做,因为可能有更好的方法。

于 2013-01-13T07:01:14.523 回答