PHP - 发布foreach内容

时间:2015-07-10 08:16:41

标签: php mysql

所以,我有这个运行sql查询的foreach循环。每行都打印在一个选项中。我有两个论坛帖子。一个删除'这一行和一个使用'排。但是当我发布表单时,选项内的内容仍然是空的。这是我的代码:

发布文件

<?php

try {
        $DB = new PDO ('mysql:host=localhost;dbname=pre_messages', $DBuser, $DBpassword);

            $sql = "SELECT * FROM message";


            ?>
                <html>
                    <form action="action.php" method="post">
                    <select><?php
                        foreach ($DB->query($sql) as $row)
                                {
                        ?>
                            <option name="content" value="<?php echo $row['Title']; ?>"><?php echo $row['Title']; ?></option>
                        <?php } ?>
                    </select>
                        <br /><input type="submit" value="use" name="use">
                        <input type="submit" value="delete" name="delete">
                </form>
                 </html>

action.php的

<?php
    require_once 'hidden/session.php';

    $delete = $_POST['delete'];
    $use = $_POST['use'];
    $content = $_POST['content'];


    try {
            $DB = new PDO ('mysql:host=localhost;dbname=pre_messages', $DBuser, $DBpassword);

                $delete = "DELETE FROM message WHERE title='$content'";
        if (isset($delete)){
            $DB->exec($delete);
        }

}
catch (PDOException $e)
{
    echo $e->getMessage();
}

1 个答案:

答案 0 :(得分:1)

要发布内容,您必须为控件命名。您已为选项指定了name属性,但在select中未指定name属性。这就是为什么没有发布该控件的价值的原因。因此,当您尝试将其作为$ content = $ _POST [&#39; content&#39;]进行访问时; ,它给你空值。

试试这个:

<html>
    <form action="action.php" method="post">
        <select id="content" name="content">
            <?php foreach ($DB->query($sql) as $row) {  ?>
                <option value="<?php echo $row['Title']; ?>"><?php echo $row['Title']; ?></option>
            <?php } ?>
        </select>
        <br />
        <input type="submit" value="use" name="use">
        <input type="submit" value="delete" name="delete">
    </form>
</html>

希望它有所帮助!!