【问题标题】:how to get checked checkbox table row value in codeigniter如何在codeigniter中获取选中的复选框表行值
【发布时间】:2020-08-14 23:23:15
【问题描述】:

查看页面

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

我的要求

我想将下面的数据保存到表中
1. bene_id
2. 奖金 ₹
3. 津贴 ₹

我已从现有受益人表中获取此表数据。所以 Bene_id 和 Stipendiary ₹ 值来自该表。奖金 ₹ 将作为输入。
现在我想将表数据保存到付款表。
我正在尝试按数组发布值。它工作正常。
现在我的复选框有问题。我想忽略未选中的行值。这意味着我想要复选框的行值:选中

我期待 jquery 传递复选框:检查行值到隐藏输入数组。

【问题讨论】:

  • 如果我取消选中第 2 行和第 3 行,您是否希望发布其余数据(我的意思是第 2、3 行)
  • 附注:id 应该是唯一的!
  • 是的,如果我取消选中第 2 行和第 3 行。我想发布第 1 行、第 4 行和第 5 行
  • 好吧,你不需要 jquery 来发帖。在指定控制器中对您的操作方法使用普通的 html 表单
  • 对其他值使用隐藏字段可以解决问题。

标签: javascript php jquery codeigniter-3


【解决方案1】:

正如我在 cmets 部分告诉你的,你可以使用普通的 HTML 表单提交到控制器上的 action 方法,但是你需要稍微修改你的表单,这是最简单的解决方案。

尽管选项一简单,我还是决定给你另一种方法来解决这个问题,所以首先看一下 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
         }
   }

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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多