2

簡単な質問。

DBからのアイテムを含む選択ドロップリストがあります。ユーザーがテキストボックスに入力しているとき、私のjQueryコードは選択オプションをループして、ユーザーが一意の項目を入力していることを確認します。同じアイテムを入力すると、そのアイテムが選択ドロップダウンで選択されます。

それはうまくいきます。

私の問題は、ユーザーが一意の値を入力したときに、ajaxを介してサーバーに投稿することです。ただし、ドロップダウンをループするたびに投稿されます。

これの理由は、私のajaxコードが選択リスト内の各アイテムをループする$.eachループに含まれているためです。投稿アクションが1回だけ発生するように、どのようにコーディングできますか?

// grab current val
var cv = $(this).val();

// loop through gov bodies drp to make sure that value isn't already present
$("#drpCurrentGOVBody option").each(function () {

    if (cv == $(this).text()) {

        //value is already present
        //select it in drp down
        $(this).attr('selected', 'selected');

    } else {

        //value isn't present. Add it to db    

    }

});

// post to db
$.post('ajax/school_search_results.php', {
    add_new_gov_type: true,
    data: cv,
    action: 'newgov'
}, function (data) {
    $("#drpCurrentGOVBody").html(data);
});

問題のセクションの写真も添付しました。 ここに画像の説明を入力してください

よろしくお願いします。

4

1 に答える 1

1

おそらく、Ajaxで送信するデータを変数(ループの外側)に保存する必要があります。ループを実行したら、データが送信される新しいデータと等しいかどうかを確認します。等しくない場合は、Ajaxコードを使用して送信する必要があります。等しい場合は、Ajaxの部分をスキップしてください。また、その変数がまだ定義されていない場合は、おそらくループが初めて実行されるため、Ajaxを使用してサーバーに送信する必要があります。

お役に立てれば、

于 2013-02-25T01:00:10.073 に答える