【问题标题】:$_POST on a While loop?$_POST 在 While 循环中?
【发布时间】:2016-01-16 08:37:43
【问题描述】:

我的问题是:您可以使用表单和 while 循环内的 POST 吗?我有这个应该给我一个复选框和旁边的歌曲标题,我希望能够选择一些复选框并将它们发布到“process.php”但我制作的这段代码不是将任何内容发布到 process.php。如果我单击提交按钮而不选中任何框,它默认为我数据库中的最后一个结果#,如果我选中任何一个或几个框,它会显示它的“未定义偏移量 #9”,这是我数据库中的最后一个结果。如果我在while循环中制作表单,我会得到每个结果的大量提交按钮。我不确定我做错了什么!请帮帮我!!!

这就是我需要发生的事情 ⎕歌曲名称 ⎕歌名二 提交

如果你点击提交上 process.php 我应该可以使用“song_name”

Please select songs: <br>


            <form method="post" action="process.php">
            <?php 
            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbname = "song_selection";

            // Create connection
            $conn = new mysqli($servername, $username, $password, $dbname);
            // Check connection
            if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
            } 

            $sql = "SELECT * FROM songs";
            $result = $conn->query($sql);

            if ($result->num_rows > 0) {
            $a = 1;

            // output data of each row
            while($row = $result->fetch_assoc()) {
            $song_name = $a++;
            //echo "title: " . $row["title"]. "<br>";
            ?>
            <div width="200">


            <label>
            <input type="checkbox" name="<?php echo $song_name; ?>" value="<?php echo $song_name; ?>" id="CheckboxGroup1_0" />
            <?php echo $row['title']; ?></label>



            </div>
            <?php
            } echo '<input type="submit" value="thanks">';
            } else {
            echo "0 results";
            }

            ?>

            </form>

            <?php 
            echo $_POST[$song_name];
            ?>

【问题讨论】:

  • 尝试添加一个动作到你的
  • @Zapp 嗨,感谢您指出这一点,我之前确实在表单上包含了该操作,但结果相同,看来 $_post 并没有以某种方式延续。我怀疑是因为循环,但我不确定。
  • 您是如何处理 process.php 页面中的表单的?使用相关代码更新您的问题。

标签: php mysql forms post http-post


【解决方案1】:

$song_name 是一个计数器值,而不是实际的歌曲名称,您在value="" 属性中使用了它。我相信$row['title'] 是实际的歌曲名称,所以替换,

<input type="checkbox" name="<?php echo $song_name; ?>" value="<?php echo $song_name; ?>" id="CheckboxGroup1_0" />

<input type="checkbox" name="<?php echo $song_name; ?>" value="<?php echo $row['title']; ?>" id="CheckboxGroup1_0" />

从你的问题来看:

如果你点击提交上 process.php 我应该可以使用“song_name”

如果这是您的要求,请按如下方式处理表单:

process.php

foreach($_POST as $key => $value){
    echo $key . ": " . $value . "<br />";
}

【讨论】:

  • 嗨拉杰迪普!非常感谢您的帮助,这完全解决了我的问题!我真的很感激!
猜你喜欢
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 2011-08-09
  • 2021-07-18
相关资源
最近更新 更多