0

私はコードイグナイターで作業しています..私は5行を作成しています..実際に私が行っているのは、最初の選択ボックスに基づいて2番目の選択ボックスに表示されるオプションです..ループで5行を作成しない場合スクリプトは正常に動作していますが、それらをループに入れると..選択が機能しません..firebugで、falseの応答が返され、それを言っています

  localhost/......./controller/get_items/undefined...

そのコードの何が問題なのかわかりません

<?php 
for ($i = 0; $i < 5; $i++) {
?>
<?php echo form_dropdown('cat_id', $records2, '#', "id='category_".$i."'");?>

<?php echo form_dropdown('item_id', $records3, '#', "id='items_".$i."'"); ?>

<script type="text/javascript">
// <![CDATA[
$(document).ready(function()
{  
    for (var i= 0; i<5; i++)
    {
        $('#category_'+ i).change(function()
        {
            $('#items_'+ i > option").remove(); 
            var category_id = $('#category_'+ i).val(); 

            $.ajax({
                type    : "POST",
                url     : "stockInController/get_Items/"+category_id, 
                success : function(items)
                {
                    $.each(items,function(item_id,item_name) 
                    {
                        var opt = $('<option />'); 
                        opt.val(item_id);
                        opt.text(item_name);
                        $('#items_'+ i).append(opt); 
                    });
                }

            });
        });
    }
}      
4

1 に答える 1

0

私があなたの問題を理解している限り、ここに解決策があります。

あなたの関数は次のようになります

function getCategories(obj)
{

    var category_id = obj.id      ;
    $.ajax({
         type    : "POST",
         url     : "stockInController/get_Items/"+category_id, 
         success : function(data)
         {
             $('#'+id).html(data);// here you should provide 2nd dropdown id so that it can be replaced
         }
    });
}

コントローラー方式

function get_Items()
{
    $id =   $this->uri->segment(3);
    $data['result'] = $this->somemodel->getProducts($id);
        $this->load->view('options',$data);
}

意見

options.php

foreach($result as $row){
?> <option value = "<?php echo $row->item_id?>"><?php echo $row->item_name?></option><?php    
}

そして、カテゴリの各ドロップダウンで、この関数を呼び出す必要があります。

<?php echo form_dropdown('cat_id', $records2, '#', "id='category_".$i."' onclick = "getCategories(this)"");?>
于 2013-01-18T18:05:37.657 に答える