从codeigniter中的foreach中的输入文本中获取值

时间:2017-05-10 06:41:11

标签: php codeigniter

我有一个关于如何从foreach()中的输入文本中获取值的问题,当我执行代码时,它获取表中的最后一行数据。

以下是视图代码:

<?php
$count = 1;
foreach ($data as $row) {?>

<thead> 
  <th>No</th>
  <th>Out ID</th>
  <th>Name</th>
  <th>Dorm</th>
  <th>Date</th>
  <th>Approve</th>
  <th>Comment</th>
  <th>Action</th>
</thead>

<tbody>
<tr>                                                      
    <td><center><?php echo $count; ?> </td>
    <td><center><?php echo $row->IdOut; ?> </td>
    <td><center><?php echo $row->Name; ?> </td>
    <td><center><?php echo $row->Dorm; ?> </td> 
    <td><center><?php echo $row->Date; ?> </td>
    <td><center><input type="checkbox" name="approvechk"></td>
    <td><center><input type="text" name="aproverComment"></td>
    <td><center><input type="submit" name="submit" value"submit"></td>
</tr> 
</tbody>

<?php $count ++;
}
?>

如果点击提交,如何从表中获取选中的行和输入?

3 个答案:

答案 0 :(得分:0)

您必须在代码中进行一些更改,例如:

<center><input type="checkbox" name="approvechk">

上面的复选框语句位于foreach()循环内部,因此您必须更改其名称,如:

<center><input type="checkbox" name="approvechk[]">

这里使用approvechk[],以便它可以包含多个值。

之后,整个输入元素不会包装在表单标记内,因此无法直接提交给服务器。因此,要么在<form>标记中换行,要么使用jquery将用户数据提交给服务器。

答案 1 :(得分:0)

下面的代码可以使用,但是如果你看一下datatables会更好地处理表中的数据会更好。

    <?php
    $count = 1;
    foreach ($data as $row) {?>

    <thead> 
    <th>No</th>
    <th>Out ID</th>
    <th>Name</th>
    <th>Dorm</th>
    <th>Date</th>
    <th>Approve</th>
    <th>Comment</th>
    <th>Action</th>
    </thead>

    <tbody>
    <tr>                                                      
        <td><center><?php echo $count; ?> </td>
        <td><center><?php echo $row->IdOut; ?> </td>
        <td><center><?php echo $row->Name; ?> </td>
        <td><center><?php echo $row->Dorm; ?> </td> 
        <td><center><?php echo $row->Date; ?> </td>
<form type="post">
        <td><center><input type="checkbox" name="approvechk"></td>
        <td><center><input type="text" name="aproverComment"></td>
        <td><center><input type="submit" name="submit" value"submit"></td>
</form>
    </tr> 
    </tbody>

    <?php $count ++;
    }
    ?>

答案 2 :(得分:0)

  <thead> 
    <th>No</th>
    <th>Out ID</th>
    <th>Name</th>
    <th>Dorm</th>
    <th>Date</th>
    <th>Approve</th>
    <th>Comment</th>
    <th>Action</th>
    </thead>

    <tbody>
 <?php
    $count = 1;
    foreach ($data as $row) { ?>
    <tr>                                                      
        <td><center><?php echo $count; ?> </td>
        <td><center><?php echo $row->IdOut; ?> </td>
        <td><center><?php echo $row->Name; ?> </td>
        <td><center><?php echo $row->Dorm; ?> </td> 
        <td><center><?php echo $row->Date; ?> </td>
        <td><center><input type="checkbox" name="approvechk"></td>
        <td><center><input type="text" name="aproverComment"></td>
        <td><center><input type="submit" name="submit" value"submit"></td>
    </tr> 
<?php $count ++;
    }?
    </tbody>

&GT; 试试这个方法,你不需要在foreach中包含整个表,只需要rows()