我有一个关于如何从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 ++;
}
?>
如果点击提交,如何从表中获取选中的行和输入?
答案 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()