PHP-postforeach内容
所以,我有一个foreach循环,它运行一个sql查询。每行打印在一个选项中。我有两个论坛帖子。一个“删除”行,另一个“使用”行。但是当我发布表单时,选项中的内容仍然为空。这是我的密码: 发布文件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";
<?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”
应该在
上,而不是
上。