Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-postforeach内容_Php_Mysql - Fatal编程技术网

PHP-postforeach内容

PHP-postforeach内容,php,mysql,Php,Mysql,所以,我有一个foreach循环,它运行一个sql查询。每行打印在一个选项中。我有两个论坛帖子。一个“删除”行,另一个“使用”行。但是当我发布表单时,选项中的内容仍然为空。这是我的密码: 发布文件 <?php try { $DB = new PDO ('mysql:host=localhost;dbname=pre_messages', $DBuser, $DBpassword); $sql = "SELECT * FROM message";

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

发布文件

<?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();
}

为了发布内容,您必须为控件命名。您已为选项指定了name属性,但在select中未指定name属性。这就是为什么该控件的值没有被发布。因此,当您尝试以$content=$\u POST['content'];的形式访问它时,它给你空值

试试这个:

<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>



希望能有帮助

您没有在select查询中写入
execute
命令和
fetch data
方法!!您需要将
name
属性添加到
name=“content”
应该在
上,而不是
上。