尝试将此选中允许选中多个复选框。
表格
<fieldset>
<legend>Rooms</legend>
<ol>
<li>
<label for =youthCafe>Youth Cafe</label>
<input type="checkbox" name="roomid[]" value="1" ><br>
<label for =inkwellMain>Inkwell Main</label>
<input type="checkbox" name="roomid[]" value="2"><br>
<label for =inkwellSmall>Inkwell Small</label>
<input type="checkbox" name="roomid[]" value="3"><br>
<label for =kitchen>Kitchen</label>
<input type="checkbox" name="roomid[]" value="4"><br>
<label for =outsideCatering>Outside Catering</label>
<input type="checkbox" name="roomid[]" value="5"><br>
</li>
</ol>
</fieldset>
PHP
mysql_select_db('eydg');
$query = "insert into orders (customerNo)
values ($customerNo)";
$result = mysql_query($query);
$query = "select * from orders where customerNo = '$customerNo'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$bookingNo= $row['bookingNo'];
if ( isset($_POST['roomid']) ){
foreach( $_POST['roomid'] as $value ){
$query = "insert into bookings (bookingNo,roomNo)
values ('$bookingNo','$value')";
$result = mysql_query($query);
}
}
目前它只允许将1个选择添加到数据库中。它们都是自己工作但是如果选择了大于1,那么它只会插入第一个。
真的不知道它有什么问题。
由于
答案 0 :(得分:2)
很抱歉,但我无法发表评论。
您检查了多少个复选框? 大多数浏览器都不提交未选中的复选框。
另外,请提供var_dump($_POST)
或var_dump($_POST['roomid'])
答案 1 :(得分:0)
注意:
自PHP 5.5.0起,不推荐使用mysql扩展,并将其删除 在将来。相反,MySQLi或PDO_MySQL扩展应该是 使用
你的代码对我来说没问题。
我建议你使用xdebug观察你的代码是否运行,这会清楚地告诉你哪里有麻烦。
但第一步可以看看此代码返回的内容:
foreach( $_POST['roomid'] as $key => $value ){
echo "\n<br>\n<br>array key=" . $key . ' : value=' . $value;
$query = "insert into bookings (bookingNo,roomNo) values ('$bookingNo','$value')";
echo "\n<br>query" . ' : ' . $query;
$result = mysql_query($query, $link);
if(!$result){
echo "\n<br><h1>Error : " . mysql_errno($link) . ": " . mysql_error($link) . '</h1>';
}
}
此处 $ link 是保存连接的var。所以在运行此代码之前替换此变量。