我这里有一个循环的复选框值,假设我有3个增量
<?php foreach ($times as $time) { ?>
<input type="checkbox" name="b" id="b1" value=" <?php echo $time->format('h:i a'), '-', $time->add($interval)->format('h:i a'); ?>">
<?php } ?>
在foreach
显示3个具有不同值的复选框。
现在例如我检查了2个盒子。查询必须运行两次?或者更好的是,必须将2个已检查的值插入到数据库中。
$b = $_POST['b'];
$ins = mysql_query("INSERT INTO ehr_schedule3(`sched3_time) VALUES('$b')");
我该怎么做?
答案 0 :(得分:1)
您的所有复选框都具有相同的名称,因此$_POST['b']
只会获取最后一个复选框的值。要获取多个值,您需要使用数组样式名称:
<?php foreach ($times as $time) { ?>
<input type="checkbox" name="b[]" value="<?php echo $time->format('h:i a'), '-', $time->add($interval)->format('h:i a'); ?>">
<?php } ?>
然后$_POST['b']
将是所有值的数组。
foreach ($_POST['b'] as $b) {
$b = mysql_real_escape_string($b);
$ins = mysql_query("INSERT INTO ehr_schedule3(`sched3_time) VALUES('$b')");
}
我还拿出了id="b1"
,因为你不应该有多个具有相同ID的元素。如果你真的需要输入ID(为什么?),你需要给它们不同的,可能是使用数组索引作为ID的一部分。
答案 1 :(得分:0)
您可以设置一个计数器来计算bs:
<?php
$count = 0;//to count the rows if they are dynamic
foreach ($times as $time) {
?>
<input type="checkbox" name="b<?php echo $count; ?>" value="<?php echo $time->format('h:i a'), '-', $time->add($interval)->format('h:i a'); ?>">
<?php
$count++;
}
?>
<input name="rowCount" type="hidden" value="<?php echo $count; ?>" /><!-- to store number of inputs -->
然后在你的插入函数
$b_count = $_POST['rowCount'];//to store count of b
$my_quries = [];
for($i=0; $i<$b_count; $++){
$b = $_POST['b'.$i];//get the corresponded b from POST req
$my_quries[] = mysql_query("INSERT INTO ehr_schedule3(`sched3_time) VALUES('$b')");
//you can execute the query in this loop or another one as you like
}