2

次のことを行うスクリプトを作成したいと思います。

ラジオ、ドロップダウン、またはチェックボックスを介して質問に答える場合、スクリプトは、ラジオ ボタン (またはドロップダウン、またはテキストとテキストエリア以外のフォーム要素) を選択すると、指定されたオプションがスクリプトにさらに質問をさせるかどうかをチェックします。

例:

[Call me back] の前にあるチェックボックス。チェックすると、さらに 2 つのフィールドが表示されます (利用可能なすべての国のドロップダウンと、電話番号のテキスト フィールド)。


もう一つの例:

(私たちがエンドユーザーの IT サポートだとしましょう)

サポートが必要なトピック (ハードウェア、ソフトウェアなど) をユーザーが選択できるドロップダウン メニュー。次に、ユーザーがトピックを選択すると、より多くのトピックを含む追加のフィールドが表示されます (例: ユーザーがハードウェアを選択すると、電話、コンピューターなどを取得します)。順番に、シリアル番号、おそらく OS の追加フィールドが表示されます。など


PHPとSQLでそれを行う方法を理解できると思います。HTMLとjQuery:AJAXを使用して正しい方向に少しプッシュする必要があるだけです。スクリプトに必要なものが十分に明確であることを願っていますする..

前もって感謝します!:)

4

3 に答える 3

3

次のようなHTML構造を想定しています。

<div id="question-1" class="top-question">
    What do you want?<br>
    <select>
        <option value='thing'>thing</option>
        <option value='item'>item</option>
    </select>
    <div id="question-1a" class="sub-question">
        How many of them?<br>
        <select>
            <option value='5'>five</option>
            <option value='10'>ten</option>
        </select>
    </div>
</div>

そして、jQueryライブラリ(このような場合に非常に簡単になります)を使用すると、次のことができます。

$('.sub-question').hide()
$('.top-question').bind('change',function(){
    $('.sub-question').show()
})

ここに示されているように:http://jsfiddle.net/xtUk6/

ここではAjaxは必要ありません。コンセプトは、ページ上にすべてのフォームフィールドがあり、視覚的に削除されているだけです。次に、各質問には独自のIDがあり、フォームがサーバーにポストバックされ、そこでphpによって処理されるときに識別できます。

Ajaxを使用することは可能ですが、非常に複雑な入力シナリオのセットに従って何百万もの質問から選択する必要がない限り、サーバーから次の質問を常に取得している間、遅延が発生します。

于 2011-05-31T13:56:42.360 に答える
1

これに ajax を使用する必要はありません。できることは、ドロップダウンが変更されたときに、フィールドを含む div の CSS プロパティを non に変更することdisplay:none;です。

于 2011-05-31T13:48:21.767 に答える
0

$().show() & $().hide() メソッドでもこれを行うことができます。表示または非表示にするアイテムの $() 括弧内に css セレクターを配置する必要があります。これは、上記のように display:none を使用する代わりに jQuery を使用する場合です。

于 2011-05-31T13:50:49.177 に答える