如何在codeigniter中获取复选框表的行值?

问题描述 投票:0回答:1

查看页面

<table>
<thead>
    <tr>
        <th><input type="checkbox" checked="checked" class="checkAll"  name="checkAll" /></th>
        <th>#</th>
        <th>Beneficiary Name</th>
        <th>Stipendiary Type</th>
        <th class="text-right box">Bonus ₹</th>
        <th class="text-right">Stipendiary ₹</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td align="center">
            <input type="checkbox" checked="checked" class="chkclass " name="bene_id[]" value="1" /><input type="hidden" name="amount[]" value="500" tabindex ="-1" />
        </td>
        <td>1</td>
        <td>Jeinbai Nesamony</td>
        <td>Poor Pension</td>
        <td class="text-right box" id="hideshow">
            <input type="text" name="bonus[]" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
        </td>
        <td class="text-right wagein">500.00</td>
    </tr>
    <tr>
        <td align="center">
            <input type="checkbox" checked="checked" class="chkclass " name="bene_id[]" value="2" /><input type="hidden" name="amount[]" value="400" tabindex ="-1" />
        </td>
        <td>2</td>
        <td>Chellammal Kochimoni</td>
        <td>Poor Aid</td>
        <td class="text-right box" id="hideshow">
            <input type="text" name="bonus[]" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
        </td>
        <td class="text-right wagein">400.00</td>
    </tr>
    <tr>
        <td align="center">
            <input type="checkbox" checked="checked" class="chkclass " name="bene_id[]" value="3" /><input type="hidden" name="amount[]" value="400" tabindex ="-1" />
        </td>
        <td>3</td>
        <td>Thasammal Thangaiah</td>
        <td>Poor Aid</td>
        <td class="text-right box" id="hideshow">
            <input type="text" name="bonus[]" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
        </td>
        <td class="text-right wagein">400.00</td>
    </tr>
    <tr>
        <td align="center">
            <input type="checkbox" checked="checked" class="chkclass " name="bene_id[]" value="4" /><input type="hidden" name="amount[]" value="400" tabindex ="-1" />
        </td>
        <td>4</td>
        <td>Roselet</td>
        <td>Poor Aid</td>
        <td class="text-right box" id="hideshow">
            <input type="text" name="bonus[]" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
        </td>
        <td class="text-right wagein">400.00</td>
    </tr>
    <tr>
        <td align="center">
            <input type="checkbox" checked="checked" class="chkclass " name="bene_id[]" value="5" /><input type="hidden" name="amount[]" value="400" tabindex ="-1" />
        </td>
        <td>5</td>
        <td>Kamalam Chellam R.</td>
        <td>Poor Aid</td>
        <td class="text-right box" id="hideshow">
            <input type="text" name="bonus[]" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
        </td>
        <td class="text-right wagein">400.00</td>
    </tr>
</tbody>

enter image description here

我的要求

我想把以下数据保存到表中 1.bene_id 2.bonus ₹ 3.Stididiary ₹。Stididiary ₹ 4.

我从现有的受益人表中获取了这个表的数据,所以从该表中获取了Bene_id和Stipendiary ₹的值。所以Bene_id和Stidiary ₹的值是从该表中获取的。奖金 ₹将是一个输入。现在我想把表数据保存到付款表。我想通过数组来发布数据,这很好,但现在我对复选框有一个问题。这意味着我想让复选框的行值:选中,我希望jquery能将复选框:选中的行值传递给隐藏的输入数组。

javascript php jquery codeigniter-3
1个回答
1
投票

正如我在评论区告诉你的,你可以使用普通的HTML表单来提交到控制器上的动作方法,但你需要修改一下你的表单,这是最简单的解决方案。

尽管方案一简单,我决定给你另一种方法来解决这个问题,所以首先看看HTML和JavaScript的代码。

<table>
<thead>
   <tr>
     <th><input type="checkbox" checked="checked" class="checkAll"  name="checkAll" /></th>
     <th>#</th>
     <th>Beneficiary Name</th>
     <th>Stipendiary Type</th>
     <th class="text-right box">Bonus ₹</th>
     <th class="text-right">Stipendiary ₹</th>
   </tr>
</thead>
<tbody id="details">
  <tr>
    <td align="center">
        <input type="checkbox" checked="checked" class="chkclass " id="bene_id" value="1" />
    </td>
    <td>1</td>
    <td>Jeinbai Nesamony</td>
    <td>Poor Pension</td>
    <td class="text-right box" id="hideshow">
    <input type="text" name="bonus" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
    </td>
    <td class="text-right wagein" id="amount">500.00</td>
</tr>
<tr>
    <td align="center">
        <input type="checkbox" checked="checked" class="chkclass " id="bene_id" value="2" />
    </td>
    <td>2</td>
    <td>Chellammal Kochimoni</td>
    <td>Poor Aid</td>
    <td class="text-right box" id="hideshow">
        <input type="text" name="bonus" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
    </td>
    <td class="text-right wagein" id="amount" >400.00</td>
</tr>
<tr>
    <td align="center">
        <input type="checkbox" checked="checked" class="chkclass " id="bene_id" value="3" />
    </td>
    <td>3</td>
    <td>Thasammal Thangaiah</td>
    <td>Poor Aid</td>
    <td class="text-right box" id="hideshow">
        <input type="text" name="bonus" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
    </td>
    <td class="text-right wagein" id="amount" >400.00</td>
</tr>
<tr>
    <td align="center">
        <input type="checkbox" checked="checked" class="chkclass " id="bene_id" value="4" />
    </td>
    <td>4</td>
    <td>Roselet</td>
    <td>Poor Aid</td>
    <td class="text-right box" id="hideshow">
        <input type="text" name="bonus" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
    </td>
    <td class="text-right wagein" id="amount">400.00</td>
</tr>
<tr>
    <td align="center">
        <input type="checkbox" checked="checked" class="chkclass " id="bene_id" value="5" />
    </td>
    <td>5</td>
    <td>Kamalam Chellam R.</td>
    <td>Poor Aid</td>
    <td class="text-right box" id="hideshow">
        <input type="text" id="bonus" value="" class="tbl-input-cus bonus" tabindex ="1" />
    </td>
    <td class="text-right wagein" id="amount">400.00</td>
</tr>
</tbody>
</table>

<button id="submit">Submit</button>

<script type="text/javascript" src="<?= base_url(assets/js/jquery.min.js) ?>"></script>
<script type="text/javascript">
  function jsonify(){

    var rows = $('#details tr');
    var a = [];
    rows.each(function(){

        if($(this).find('#bene_id').is(':checked'))
        {
           var bene_id       = $(this).find('#bene_id').val();
           var stipendiary   = $(this).find('#amount').html();
           var bonus         = $(this).find('#bonus').val();

           var x = {
                bene_id:bene_id,
                stipendiary:stipendiary,
                bonus:bonus
            };
            a.push(x);
        }
    });
    var c = JSON.stringify(a);
    return c;
}

 $(function(){

   $('#submit').click(function(){
       $data = jsonify();

       $.ajax({
          type:'POST',
          url:'<?= base_url('controller/method_name') ?>',
          data:{details:data},
          success:function(response)
          {
            //if you data save successfuly, do sth here..
          }
       });
    });

 });

下面的代码是指定控制器上的action方法的PHP代码。

   public function method_name()
   {
         $details  = json_decode($this->input->post('details'));

         foreach($details as $det ){

            $bene_id     = $det->bene_id;
            $stipendiary = $det->stipendiary;
            $bonus       = $det->bonus;

            // your logic goes here
         }
   }

在这个解决方案中,我没有考虑验证和安全问题,因为我想让它简单,所以在你把它放在你的生产服务器之前,你必须处理这些问题。

希望对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.