0

ビュー ページにフォームがあり、行に 2 つの選択ボックスと 3 つの入力ボックスがあります。それらを for ループに入れ、各行に 2 つの選択ボックスと 3 つの単純なテキスト ボックスがある 5 つの行を作成します。1つの選択ボックスから値を選択すると、2番目の選択ボックスに表示されるjqueryの関数。しかし、ループで5行を作成した後、この関数は最初の行でのみ機能し、他の4行では機能しません。私はそれを行う方法がわかりません。誰かが私のためにそれをコーディングできる場合は、彼に感謝します...

これは私の閲覧ページです

   <tr>
 <th>Category:</th>
   <th>Items:</th>
   <th>Selling Price:</th>
    <th>quantity:</th>
   <th> total:</th>
</tr>

<?php for ($i = 0; $i < 5; $i++) {
    ?>
    <tr>
           <td>     


    <?php echo form_dropdown('cat_id', $records2, '#', 'id="category"');?>
    </td>
   <td>                 

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

     </td>           

    <td><?php echo form_input($price); ?> </td>

       <td><?php echo form_input($quantity); ?></td>

       <td> <?php echo form_input($total); ?>
        </td></tr>

     <?php }?></table>

2 つの選択ボックスの私のJavaScript 。

      $(document).ready(function(){  
      $('#check').click(function(){
     alert("hello");
     return false;
 });
      $('#category').change(function(){ 
    $("#items > option").remove();
    var category_id = $('#category').val();  
    $.ajax({
        type: "POST",
        url: "stockInController/get_Items/"+category_id, 

        success: function(items) //we're calling the response json array 'cities'
        {
            $.each(items,function(item_id,item_name) 
            {
                var opt = $('<option />'); 
                opt.val(item_id);
                opt.text(item_name);
                $('#items').append(opt);
            });
        }

    });

 });
  });

コントローラーに値を送信するためのJavaScript

    <script type="text/javascript">
       $('#btn').click(function() { //  $("#form").serialize()

var cust_id = $('#cust_id').val();
var item_id = $('#items').val();


var sales_date = $('#sales_date').val();
var sales_bill_no = $('#sales_bill_no').val();
var price = $('#price').val();
var quantity = $('#quantity').val();




var form_data = {
        cust_id: $('#cust_id').val(),
        sales_date: $('#sales_date').val(),
        sales_bill_no: $('#sales_bill_no').val(),
        price: $('#price').val(),
        quantity: $('#quantity').val(),
        item_id: $('#items').val(),




};


$.ajax({
    url: "<?php echo site_url('salesController/addSales'); ?>",
    type: 'POST',
    data: form_data,
    dataType: 'json',
    success: function(msg) {
        if(msg.res == 1)
        {
            $(".success").fadeIn(500).delay(2000).fadeOut(500);
            alert("true");
        }
        else{
            alert("false");          
          }


    }
});

return false;
   });


  </script>

私はこれを行いましたが、これは機能しません

 <?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

2 に答える 2

0
<?php for ($i = 0; $i < 5; $i++) {
?>
<tr>
       <td>     


<?php echo form_dropdown('cat_id', $records2, '#', "id='category".$i."'");?>
</td>

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

 </td>           

同様に、JavaScriptでループを実行し、カテゴリとアイテムの値を取得します

編集:

for(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) //we're calling the response json array 'cities'
    {
        $.each(items,function(item_id,item_name) 
        {
            var opt = $('<option />'); 
            opt.val(item_id);
            opt.text(item_name);
            $("#items"+i).append(opt);
        });
    }

});
}
于 2013-01-18T10:39:34.050 に答える
0

ここでの問題は、各行にIDの「カテゴリ」と「アイテム」を入力する必要があることだと思います。ページ上の各要素には一意の ID が必要です。おそらく行1の場合、それらは「cat_1」と「item_1」または同様のものです。今、部屋に 10 人がいるようなものです。5 人はジョニー、5 人はサラです。中に入ってジョニーを頼むと、問題が発生します。

于 2013-01-18T10:38:51.770 に答える