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 を指定していません。部門 ID を指定する必要がありますか?

4

2 に答える 2

3

あなたがしたいことは、サーバー側にいる間にこれを JavaScript 配列として作成することです。つまり、php はそれを JavaScript 配列として出力します (配列値をループして JavaScript 配列に出力するか、JSON エンコーディングで配列を出力します)。その後、ブラウザ側の JavaScript で使用できるようになり、すべてがうまくいきます。PHP 変数自体はブラウザー側では使用できません。PHPはブラウザー側では実行されず、サーバーが Web ページを送信する前に実行が終了したためです。

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 に答える