我正在处理以下代码,以便从表单中选择复选框.如果我检查第一个复选框,一切都很好.如果我选中另一个复选框,则在发送批量复制表单时会出现“未定义索引”错误.请记住,我正在使用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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。