加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读