php – Foreach仅在选中时才选中第一个复选框
发布时间:2020-12-13 13:17:39 所属栏目:PHP教程 来源:网络整理
导读:我正在处理以下代码,以便从表单中选择复选框.如果我检查第一个复选框,一切都很好.如果我选中另一个复选框,则在发送批量复制表单时会出现“未定义索引”错误.请记住,我正在使用post方法获取复选框,并且由于表单位置和字段的复杂性,提交按钮位于复选框上方.我
我正在处理以下代码,以便从表单中选择复选框.如果我检查第一个复选框,一切都很好.如果我选中另一个复选框,则在发送批量复制表单时会出现“未定义索引”错误.请记住,我正在使用post方法获取复选框,并且由于表单位置和字段的复杂性,提交按钮位于复选框上方.我需要的是选择多个复选框并将某些值添加到数据库.
<?php //bulkcopy.php session_start(); if($_SESSION['admin_logged_in'] != true){ header("Location:login.html"); exit(); } include 'db.php'; $from = mysql_real_escape_string($_GET['from']); $room = mysql_real_escape_string($_POST['room']); if(!empty($_POST['id'])) { foreach($_POST['id'] as $check) { $id = $check; $sel = mysql_query("select * from $from where id = '$id' limit 1 ") or die(mysql_error()); while($row = mysql_fetch_array($sel)){ $preview = $row['preview']; $text = $row['text']; $title = $row['title']; $images = $row['images']; } $ins = mysql_query("insert into $room (id,preview,text,title,images) values (' ','$preview','$text','$title','$images') ") or die(mysql_error()); } header("Location:admin.php"); } ?> 表格的代码可以在下面找到: <form class="form-inline" name="bulkcopy" method="post" action="bulkcopy.php?from=sights"> <b>Bulk Copy:</b> <select name='room' class="form-control"> <option>Select...</option> <option value="Orhan">Orhan</option> <option value="Deniz">Deniz</option> <option value="Irini">Irini</option> <option value="Katina">Katina</option> <option value="Gulbin">Gulbin</option> <option value="Mihalis">Mihalis</option> </select> <input class="btn btn-primary" type="submit" name="submit" value="Go"><br /><br /> </div> <table class="table table-bordered table-striped"> <th>Entry Name</th> <th>Display Order</th> <th>Copy to...</th> <th>Status</th> <th>Image</th> <th>Edit</th> <th>Delete</th> <th>Duplicate</th> <?php while($row = mysql_fetch_array($sel)) { ?> <tr> <td> <input type="checkbox" name="id[]" value="<?php echo $row['id']; ?>"> </form> <?php echo $row['title']; ?> </td> <td> <form name="order" method="post" action="sightorder.php?id=<?php echo htmlspecialchars($row['id']); ?>"> <div class="col-md-4"> <input class="form-control" type="number" name="order" value="<?php echo htmlspecialchars($row['ordernum']); ?>"> </div> <div class="col-sm-3"> <input type="submit" name="submit" value="Set Order" class="btn btn-primary"> </div> </form> </td> <td> <form name="copyto" method="post" action="copyto.php?from=sights&id=<?php echo htmlspecialchars($row['id']); ?>"> <input type="checkbox" name="room[]" value="Orhan"> O - <input type="checkbox" name="room[]" value="Deniz"> D - <input type="checkbox" name="room[]" value="Irini"> I - <input type="checkbox" name="room[]" value="Katina"> K - <input type="checkbox" name="room[]" value="Gulbin"> G - <input type="checkbox" name="room[]" value="Mihalis"> M <input type="submit" name="submit" value="Copy" class="btn btn-primary"> </form> </td> <td> <a href="sightstatus.php?id=<?php echo htmlspecialchars($row['id']); ?>&status=<?php echo $row['status']; ?>"><?php if($row['status'] == 1){ ?><i class="fa fa-check fa-lg"></i><?php }else{ ?><i class="fa fa-times fa-lg"></i><?php } ?></a> </td> <td> <a href="sightimages.php?id=<?php echo $row['id']; ?>"><i class="fa fa-image fa-lg"></i></a> </td> <td> <a href="editsight.php?id=<?php echo htmlspecialchars($row['id']); ?>"><i class="fa fa-edit fa-lg"></i></a> </td> <td> <a onclick="return confirmDelete()" href="delsight.php?id=<?php echo htmlspecialchars($row['id']); ?>"><i class="fa fa-trash fa-lg"></i></a> </td> <td> <a href="duplicatesight.php?id=<?php echo htmlspecialchars($row['id']); ?>"><i class="fa fa-copy fa-lg"></i></a> </td> </tr> <?php } ?> </table> 任何帮助将不胜感激.
你这里有问题
<?php while($row = mysql_fetch_array($sel)){ ?> <tr><td><input type="checkbox" name="id[]" value="<?php echo $row['id']; ?>"> <?php echo $row['title']; ?></td></form> while循环没有关闭括号,并且在添加第一个复选框后关闭表单.因此,如果未选中该复选框,则不会发布输入,因此未定义索引.确保在添加完所有行之后才关闭表单,如下所示 <?php while($row = mysql_fetch_array($sel)){ ?> <tr><td><input type="checkbox" name="id[]" value="<?php echo $row['id']; ?>"> <?php echo $row['title']; ?></td></tr> <?php } ?> </table> </form> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |