我有一张桌子显示每个未经批准的假期,它看起来像这样:
对于每个未批准的,会有一个新行,所以另一个复选框,但复选框的名称将相同或略有不同(name="approve1"
)。我个人认为这不是好习惯......
评估也不是很好,因为它必须进入数据库。
<form role="form" method="post" action="" id="form">
<h2><?php echo $title ?></h2>
<?php
$page = date('F');
$page = lcfirst($page);
echo "<p><a href='$page.php'>Back</a></p>";
?>
<hr>
<?php
if($i == 0){
echo "<h3>No unapproved leaves.</h3>";
}else{
echo '<table class="table table-striped table-hover">';
echo '<thead>';
echo '<th>';
echo 'Start';
echo '</th>';
echo '<th>';
echo 'End';
echo '</th>';
echo '<th>';
echo 'Employee';
echo '</th>';
echo '<th>';
echo 'Approve';
echo '</th>';
echo '</thead>';
echo '<tbody>';
for($j =0; $j < $i; $j++){
echo '<tr>';
echo '<td>';
echo $unapproved[$j]['start'];
echo '</td>';
echo '<td>';
echo $unapproved[$j]['end'];
echo '</td>';
echo '<td>';
$id = $unapproved[$j]['employee_FK'];
$result = mysql_query("select name, surname from employee where employee_ID = $id");
while ($row = mysql_fetch_assoc($result)) {
$employee[] = $row;
}
echo $employee[0]['name'], " ", $employee[0]['surname'];
echo '</td>';
echo '<td>';
echo '<input type="checkbox" name="approve" value="1" id="approve">';
echo '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
}
?>
<input type="submit" name="submit" value="Submit" class="btn" >
</div>
</div>
</form>
有人能想到更好,更简单的解决方案吗?
答案 0 :(得分:1)
大多数框架中表格数据的做法是将它们命名为Model[id][field]
,因此在您的示例中,它看起来像"<input type='checkbox' name='leave[$j][approved]' value='1' id='leave_$j_approved'>"
。
然后,您可以通过迭代发布数据轻松访问您的数据,如下所示:
foreach($_POST['leave'] as $id => $values) {
}
答案 1 :(得分:0)
使用像这样的复选框名称
<input type="checkbox" name="approve[]" value="<?php $your_row_id; ?>" id="approve">
此处$your_row_id
表示数据库中行的唯一ID。
在帖子中,您将获得一个名为approve
的数组,其中包含所有选定的值。
使用foreach解析该数组。
答案 2 :(得分:0)
您可以通过HTTP传输arrays:
echo '<input type="checkbox" name="approve[]" value="', $id, ']" id="approve">';
现在$_GET['approve']
将是一个仅包含复选框值的数组。
您还可以指定与值关联的键:
echo '<input type="checkbox" name="approve[', $id, ']" value="', $id, ']" id="approve">';
答案 3 :(得分:0)
您可以使用“name
”属性中的数组表示法生成复选框。
<input type="checkbox" name="approve[]" value="1" id="approve">
发送后,您可以使用数组表示法$_GET['approve'][0]
恢复值,...