【问题标题】:Loop through multiple textboxes Code igniter php循环多个文本框代码点火器php
【发布时间】:2013-01-18 10:23:01
【问题描述】:

我的视图页面中有一个表单,其中连续有两个选择框和三个输入框。我将它们放在 for 循环中并制作五行,其中每行有两个选择框和 3 个简单文本框.我在 jquery 中编写了一个函数,如果我从一个选择框中选择值,它将出现在第二个选择框中。但是在循环中制作五行后,此函数仅在第一行中有效,而不是其他四排。我不知道该怎么做。如果有人可以为我编写代码,那么感谢他...

这是我的浏览页面

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

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

        });

    });
}

    });

【问题讨论】:

  • 1)永远不要使用像“code for me”这样的词。我们是来指导的。不是编码的。
  • 2)您在所有 5 行中使用相同的 ID...我的意思是 categoryitems.. 所以您的代码不起作用.. 使用唯一 ID,例如 category1,category2..category5
  • 我怎样才能给他们一个不同的ID,因为他们在一个循环中

标签: php javascript jquery ajax codeigniter


【解决方案1】:

我认为这里的问题是,在每一行中,您必须输入具有 ID 的“类别”和“项目”的输入。页面上的每个元素都应该有一个唯一的 ID。也许对于第 1 行,它们是“cat_1”和“item_1”或类似的东西。 现在有点像你有一个有 10 个人的房间,其中 5 个人叫 Johnny,5 个人叫 Sarah。如果你走进去问约翰尼,你会遇到问题。

【讨论】:

    【解决方案2】:
    <?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);
            });
        }
    
    });
    }
    

    【讨论】:

    • rikka 好的,谢谢 .. 现在如何知道我在 jquery 中循环 .. 因为现在它不工作了...我认为 jquery 也必须循环?
    • 它不工作..我想你想在 javascript 中使用 php 吗?
    • @user1972143 那不是 php.. for 循环将在 js 中工作.. 并没有给你完整的代码.. 只需循环你使用过的所有情况 categories 和 @ 987654325@..
    • rikka ..检查我更新的问题..我已经按照你说的那样做了..但没有工作
    • @user1972143 您还没有为 jquery 中的项目保留 _
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多