我的复选框问题是,它没有发送我想要的值..
这是我的复选框的html代码。我使用foreach循环。
<form id="signupform" autocomplete="off" method="post" action="inputchecklist.php" class="form_container left_label">
<?php
$ew = mysql_query("select * from pos_unit where pos_unit_name like '%Director%'");
$row = mysql_num_rows($ew);
while($eq = mysql_fetch_array($ew))
{
$pos = $eq['pos_unit_name'];
$checklist = mysql_query("select * from checklist where check_pos = '$pos' and check_ok = 'Check'");
$excheck = mysql_fetch_array($checklist);
$poss = $excheck['check_pos'];
?>
<li>
<div class="form_grid_12">
<label class="field_title" ><?php echo $eq['pos_unit_name']; ?></label>
<div class="form_input">
<input name="check[]" class="checkbox" type="checkbox" value="<?php echo $eq['pos_unit_name']; ?>" style="opacity: 0;">
</div>
</div>
</li>
<?php } ?>
</form>
这是插入的PHP代码..
<?php
include 'config.php';
$code = $_POST['code'];
$targ = $_POST['selectdistarg'];
$check = $_POST['check'];
$pos = $_POST['pos'];
foreach($pos as $index => $names)
{
$insert = mysql_query("insert into checklist (check_ok,check_pos,check_code) values ('$check[$index]','$names','$code')") or die (mysql_error());
}
$update = mysql_query("update corporate_kpi set kpi_dist_targ = '$targ' where kpi_code = '$code'");
?>
例如,
复选框1 - A, 复选框2 - B, 复选框3 - C
如果我们选择数字2,则值为B,但是我的代码是,如果我们选择数字2,则值为A,如果我们选择数字3,则值也是A,我不知道为什么.. < / p>
这是基于db
生成的<th>
<?php
while ($eq = mysql_fetch_array($ew))
{
$pos = $eq['emp_data_pos'];
?>
<th><?php echo $eq['emp_data_pos']; ?></th>
<?php } ?>
这是<td>
值..
<?php $qq = mysql_query("select emp_data_pos from emp_data where emp_data_pos like '%Director%'");
while ($ee = mysql_fetch_array($qq))
{
$pos = $ee['emp_data_pos'];
$pos1 = mysql_real_escape_string($pos);
$aa = mysql_query("select * from checklist where check_pos = '$pos1' and check_code = '$code' and check_ok = 'Check'");
$bb = mysql_fetch_array($aa);
$ok = $bb['check_ok'];
if($ok != "")
{
$ok = '✔';
} else {
$ok = '';
}
?>
<td class="center">
<?php echo $ok; ?>
</td>
<?php } ?>
答案 0 :(得分:1)
您应该使用要发送的值填充复选框。所以你的复选框应该得到值A,B,C等。所以你的复选框应该是这样的:
<input name="check[]" class="checkbox" type="checkbox" value="<?php echo $eq['pos_unit_name']; ?>" style="opacity: 0;">
这样,您的检查数组将仅由您选择的值填充。
如果我没记错的话,根本不会发送未选中的复选框。因此,如果您刚检查了Checkbox B,则您的数组将只包含一个值。这样,您就失去了与pos-Array的连接。