php:我的foreach循环复选框没有正确发送值

时间:2014-04-23 08:47:18

标签: php html

我的复选框问题是,它没有发送我想要的值..

这是我的复选框的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 = '&#10004;';
} else {
$ok = '';
}
?>
<td class="center">
<?php echo $ok; ?>
</td>
<?php } ?>

1 个答案:

答案 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的连接。