0

jQueryで、受話器のグループごとに複数のドロップダウンを取得する方法。例:

お客様は複数の受話器を選択して注文することができます。まず、顧客はドロップダウンからいくつかの受話器を選択する必要があります(1から15)。

ドロップダウンから番号5を選択した場合、ドロップドローンの5つのグループは次のように表示されます。

グループ1:

Select Phone [Dropdown / load entries via ajax] 

Select Contract Length [Dropdown / load entries via ajax]

Select Contract Plan [Dropdown / load entries via ajax]

Select Additional Addon [Dropdown  / load entries via ajax]

グループ2:

Same dropdowns as above

他の質問は、フォームに正しく入力しないためのエラー(PHPからの検証)がある場合、同じページにリダイレクトされますが、ドロップダウンを再度選択する必要があります。それを機能させる方法は?

4

2 に答える 2

1

このマークアップを想定すると:

<select id="qty">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>
<div id="placeholder"></div>

このJavaScriptを使用します。

$('#qty').change(function() {
    var qty = $('#qty').val() * 1;

    $('#placeholder').html(''); //Clear existing.

    for (var i = 0; i < qty; i++)
    {
        $('#placeholder').append(
            '<select id="phone_' + i + '"></select>');
    }
});

PHPスクリプトでは、考えられる各フィールド名を確認する必要があります。これは、負担がかかる可能性があります。送信する前に、これらを非表示のフィールドに合成することをお勧めします。

そして、@AndriusNaruševičiusがあなたの質問の残りの半分に答えたようです。

于 2012-05-01T22:38:22.553 に答える
1

セッションやhtmlの非表示要素など、フォームの完了の失敗を示す変数を持ってきて、ドキュメントをロードする必要があることを確認してください。その変数を確認し、手動でドロップダウンを呼び出します。

また

送信ボタンをクリックしてjavascriptで検証を確認することを許可しないでください。ただし、それほど安全ではありませんが、ユーザーとユーザーの両方の手間を省くことができます。私自身、[送信]をクリックする前にフォームをチェックして、ページが再読み込みされ、何か間違ったものを選択/書き込んだという事実に直面するまで数秒待つことをお勧めします。

また

xmlhttprequestまたは同様に機能するものを使用して自動的に検証し、送信クリックすると、jsはphpファイルにアクセスし、検証して結果を返し、データの送信を許可します。非常に安全ではありませんが...同じphpファイルでもう一度確認できます(誰かがフォームを介さずにデータを不正に渡そうとし、xmlhttprequestがそれをキャッチできなかった場合にキャッチされます)。ユーザーにとって最も安全で優れた方法になります。

于 2012-05-01T22:32:12.897 に答える