0

次のコード選択ボックス div があります。

Make:<br> 
        <select name="Make">
        <option value = "Toyota">Toyota</option>
        <option value = "Honda">Honda</option>
    </select>


<div id="side_model">           
        Model:<br> 
        <select name="Model">
        <PHP CODE THAT SEARCHES DATABASE FOR ALL MODELS AVAILABLE AND LIST THEM AS OPTIONS ?>
    </select>
</div>

そして、次の Jquery:

<script>
jQuery(document).ready(function($){
    $('#Make').change(function() {
        $.get('dropdown.php',{make: $(this).val() },function(d){
            $('#side_model').html(d);
        });
    });
});
</script>

これは私のコードの非常に単純化されたバージョンですが、私がしていることは、make が選択されたら、ドロップダウン php でデータベースにクエリを実行し、その make のすべてのモデルを取得して、リストに入力するだけです。

私のdropdown.phpは次のようになります。

Model:<br> 
            <select name="Model">
            <PHP CODE THAT SEARCHES DATABASE FOR ALL MODELS THAT MATCH THE MAKE SELLECTED AND LIST THEM AS OPTIONS ?>
        </select>

わかりましたので、コードは 1 つの詳細を除いて、意図したとおりに機能します。

jQuery が div を dropdown.php のコンテンツに置き換える代わりに、その上に追加の選択ボックスを追加するだけです。

モデル選択ボックスを動的に生成されたコンテンツに置き換える jQuery コードを取得するにはどうすればよいですか?

4

3 に答える 3

2

jQuery の関数を使用する方が理にかなっている場合があり.replaceWith()ます (ドキュメントはこちら)。

まず、select 要素に ID を追加します。

<div id="side_model">           
    Model:<br> 
    <select id="Model" name="Model">
        <option value='0'>----</option>
    </select>
</div>

次に、からの戻り値に置き換えます$.get()

jQuery(document).ready(function($){

$('#Make').change(function() {
        $.get('dropdown.php',{make: $(this).val() },function(d){
            $('#Model').replaceWith(d);
        });
    });
});

バックグラウンドで行う必要があるのは、 (開始/終了タグselectを含む) 全体を生成することだけです。<select>

アップデート

あなたが呼び出していることに気付きました$("#Make").change()が、どの要素にも "Make" に設定された ID を与えていません。select where に ID 属性を追加しますname="Make"

Make:<br> 
    <select id="Make" name="Make">
        <option value = "Toyota">Toyota</option>
        <option value = "Honda">Honda</option>
    </select>
于 2012-09-04T17:24:30.920 に答える
1

あなたが を呼んでいることにも気づき$('#make')ましたが、select にはそのような名前しかないのでid="make"、select に追加してください

于 2012-09-04T17:41:02.543 に答える
0

補充する前にdivをクリアしてください。

$('#side_model').empty();

そしてそれを再び満たしてください

$('#side_model').append(/*your generated html code*/);

- 編集 -

$('#make') を呼び出していることにも気付きましたが、select にはそのような名前しかないので、select に id="make" を追加してください。

于 2012-09-04T17:23:32.857 に答える