0

重複の可能性:
最初のドロップダウン リストが変更された後、データベースから 2 番目のドロップダウン リストを読み込む方法

ねえ、2 つの選択ドロップダウンがあるフォームがあります。

最初の選択にはユーザーのポートフォリオが入力され、2 番目の選択にはポートフォリオ グループが入力される必要があります。ログインしたユーザーのすべてのポートフォリオを取得し、最初の選択にそれらのポートフォリオを入力します。最初の選択に基づいて、2 番目の選択にグループを入力します。たとえば、ユーザーがポートフォリオ 1 を選択した場合、ポートフォリオ 1 内のすべてのグループ2 番目の選択ボックスに読み込まれます。

ポートフォリオの最初の選択は次のとおりです。

<select id="portfolios" name="portfolio" style="width: 200px; height:25px;">
    <option selected="selected" value="default">Select Portfolio</option>
    {% for portfolio in portfolios %}
        <option value={{ portfolio.id }}>{{ portfolio.portfolioName }}</option>
    {% endfor %}
</select> 

私が理解しているのは、そのajaxで最初の選択の変更時にajax関数を呼び出す必要があるということです。選択したポートフォリオIDを送信し、そのIDを持つすべてのグループを見つけてから、それらすべてのグループを返し、それらで2番目の選択ボックスのみを更新する必要がありますグループ、

取得するグループを 2 番目の選択に入力する方法がわかりません

何か案は?

ありがとう

4

2 に答える 2

0
<select id="portfolios" name="portfolio" style="width: 200px; height:25px;" onchange="getgropus(this.value)">
<option selected="selected" value="default">Select Portfolio</option>
{% for portfolio in portfolios %}
    <option value={{ portfolio.id }}>{{ portfolio.portfolioName }}</option>
{% endfor %}
</select>
<select id="secondselectBox" name="secondselectBox"  ></select>

call the ajax function on the onchange event of your 1st selectbox
// here is JS code

<script type="text/javascript">
function getgropus(id){
        $.ajax({
            type: 'post',
            url: "your php file path to get groups ",
            data: "&id="+id,
            complete: function(data) {
                $('#secondselectBox').html(data.responseText)
            }
        });
}

</script>

on your php file make options for selectbox of group portfolio and adjust according to your requirnments

<option value="default">Portfolio groups</option>
 .......
于 2012-08-21T12:40:48.397 に答える
0

私はそれらを JSON 形式で返し、DOM に挿入します。

$('#portfolios').on('change', function(){
   $.getJSON('url/for/groups', function(pgroups) {
       var html = '';

       $.each(pgroups, function(value, name) {
           html += '<option value="'+value+'">'+name+'</option>';
       });

       $('#portfolio-groups').html(html);
   });
});
于 2012-08-21T12:40:52.907 に答える