我可以删除包含单个单词的条目,例如'Tomato'或'Potato'。 无法删除包含多个单词的条目,例如'pumpkin soup'。
为什么?
这是我的PHP:
<?php
if(!empty($_POST['event_name_box']))
{
$del_event=$_POST['event_name_box'];
$sth = $conn->prepare("DELETE FROM event WHERE event_name=:del");
$sth->execute(array(':del'=>$del_event));
header( "Refresh: 0;" );
}
?>
这就是我在下拉列表中加载值的方法:
<select name="event_name_box" value="event_name_box" style="width:220px; padding-left:40px;font-size:18px;font-family:Roboto;">
<?php
$sth = $conn->prepare('Select event_name From event');
$sth->execute();
$data = $sth->fetchAll();
foreach ($data as $row ){
if($row['event_name']!="")
echo " <option id=\"EventName\" name=\"EventName\" value=".$row['event_name'].">".$row['event_name']."</option>";
}
?>
</select><br>
<input type="submit" name="submit" style="width:50%;padding:10px" value="Delete"</input>
答案 0 :(得分:1)
问题在于您的HTML(特别是<option>
标记)。您的值未被引用,因此该空间会破坏POST中发送的值。将选项的回声更改为以下内容:
echo '<option value="' . $row['event_name'] . '">' . $row['event_name'] . '</option>';
(您也不应该在name
代码上使用id
和<option>
。)
答案 1 :(得分:0)
您没有引用value
标记中的<option
内容,因此浏览器无法正确解释该内容。
PHP脚本中的简单跟踪应该明显表明它没有收到适当的内容。