使用AJAX&amp;将<options>附加到<select>; PHP

时间:2015-11-11 13:41:10

标签: php jquery ajax database

我的数据库中有两个表: 1.动物类型 2.品种 animal_type: type_id |名称 ------------------------ 1 |狗 2 |猫 3 |等等... 品种 ID | type_id |名称 --------------------------- 1 | 1 |拉布拉多犬 2 | 1 | Putbull 3 | 2 |波斯语 等等..... 在我的头版,我想显示选择下拉菜单,其中包含动物类型和品种,根据动物类型选择。 1.选择动物类型 &lt; select id =“animal_type”&gt;    &lt; option value =“&lt;?php $ type-&gt; id”&gt; Dog&lt; / option&gt;    &lt; option value =“&lt;?php $ type-&gt; id”&gt; Cat&lt; / option&gt; &LT; /选择&GT; 2.如果用户选择类型不可用的选择列表,其中包含基于类型的品种 &lt ;! - 用户选择狗类型!取出所有的狗品种 - &gt; &lt; select id =“breeds”disabled&gt;    &lt; option value =“&lt;?php $ type-&gt; id”&gt; Labrador&lt; / option&gt;    &lt; option value =“&lt;?php $ type-&gt; id”&gt; Pitbull&lt; / option&gt; &LT; /选择&GT; 所以我想根据选择的女巫类型从我的控制器加载所有品种。我试着用ajax来解决这个问题,但我并不认真对待他。 我尝试这个,不知道如何附加新选项来选择下拉列表。 脚本: $(document).ready(function(){    // $(“#breeds”)。attr('disabled',true);     //检查是否已选中     if($(“#animal_type”)。find('option:selected')。val()== 0){         $(“#breeds”)。attr('disabled',true);     }     $( '#animal_type')。改变(函数(){         //获取所选动物类型的值         var selected_animal_type = $(this).find('option:selected')。val();         $就({             url:“url-to-site / index.php / account / getBreedsByTypeID / 1”,             输入: 'POST',             dataType:'json',             成功:功能(响应){                 $(“#breeds”)。attr('disabled',false);                 //警报(响应); // show [object,Object]                 var $ select = $('#breeds');                 $ select.find( '选项'),删除()。                 $ .each(响应,函数(键,值)                 {                     $ select.append('&lt; option value ='+ key +'&gt;'+ value +'&lt; / option&gt;'); //返回空                 });              }         });     });  }); JSON返回我的自定义品种名称 [{“breed_name”:“Nema \ u010dki prepeli \ u010dar”},{“breed_name”:“Irski vodeni \ u016​​1panijel”},{“breed_name”:“Barbe(Barbet)”},{“breed_name”:“Lagoto 我的控制器`mysite.com / index.php / account / getBreedsByTypeID / 1` 此url返回以下编码的JSON $ breeds = $ this-&gt; animal_breed-&gt; findAllBreedsByType($ id); //模型@return数组 return json_encode($ breeds); 那么如何根据类型将结果附加到我的选择中呢? 你能举个例子来解决这个问题吗?谢谢。

2 个答案:

答案 0 :(得分:1)

$.ajax({
            url : "url-to-site/index.php/account/getBreedsByTypeID/1",
            type:'POST',
            dataType: 'json',
            success: function(response) {
                $("#breeds").attr('disabled', false);
                $.each(response,function(key, value)
                {
                    $("#breeds").append('<option value=' + key + '>' + value + '</option>');
                });
             }
        });

答案 1 :(得分:0)

$.ajax({
        url : "url-to-site/index.php/account/getBreedsByTypeID/1",
      data:{id:selected_animal_type},             
        type:'POST',
        dataType: 'json',
        success: function(response) {
            $("#breeds").attr('disabled', false);
            $.each(response,function(key, value)
            {
                $("#breeds").append('<option value=' + key + '>' + value.breed_name + '</option>');
            });
         }
    });