Php 在另一个选择的基础上更新一个选择

Php 在另一个选择的基础上更新一个选择,php,ajax,jquery,symfony,Php,Ajax,Jquery,Symfony,可能重复: 嘿,我有一个表格,里面有两个选择下拉列表 第一个选项填充用户的公文包,第二个选项需要填充公文包组。我获取登录用户的所有公文包,并用这些公文包填充第一个选择。现在,我想在第一个选择的基础上用组填充第二个选择,例如,如果用户选择公文包,公文包中的所有组都应加载到第二个选择框中 投资组合的第一个选择是: <select id="portfolios" name="portfolio" style="width: 200px; height:25px;"> <op

可能重复:

嘿,我有一个表格,里面有两个选择下拉列表

第一个选项填充用户的公文包,第二个选项需要填充公文包组。我获取登录用户的所有公文包,并用这些公文包填充第一个选择。现在,我想在第一个选择的基础上用组填充第二个选择,例如,如果用户选择公文包,公文包中的所有组都应加载到第二个选择框中

投资组合的第一个选择是:

<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中更改第一个select时调用ajax函数,我需要发送所选的公文包id并找到具有该id的所有组,然后返回所有这些组,并仅使用这些组更新第二个select框

我不知道如何用我将获得的组填充第二个选择

有什么想法吗


谢谢

我将以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);
   });
});

如何从ajax调用返回JSON?只需在php中构建一个数组作为id=>key,然后使用JSON_encode$theArray返回JSON字符串。您需要确保在控制器中适当地设置标题,什么不设置。好的,谢谢您的帮助。我不能从我的ajax调用返回投资组合组并将其放在我视图中的第二个选择选项中吗?您必须在第一个selectbox onchange事件中调用ajax,然后在getgropusid中获得组的id该id将进入您的php文件,您将在ajax函数的url部分提及该文件,并在php文件jst上根据第1个selectbox的id值生成选项标记,然后回显所有选项,这些选项将添加到第2个selectbox的html中
$('#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);
   });
});