从另一个 PHP 脚本中提取嵌入在 php 脚本中的 html 下拉列表的选定选项时,我遇到了一个奇怪的问题。如果选项值的话用空格隔开。 PHP 仅回显所选选项值的第一个单词。我在这里做错了什么?
list.php
<body>
<form action="extract.php" method="post">
<?php
$one = "one one";
$two = "two two";
$three = "three three";
echo '<select name="selected_item">';
echo '<option value='.$one.'>'.$one.'</option>';
echo '<option value='.$two.'>'.$two.'</option>';
echo '<option value='.$three.'>'.$three.'</option>';
echo '</select>';
?>
<input type="submit" class="button" value="submit" name="submit" />
</form>
</body>
</html>
extract.php
<?php
if (isset($_POST['submit'])) {
$item_name = $_POST['selected_item'];
echo $item_name;
}else{
echo "item not selected";
}
?>
如果我在列表中选择“三三”,PHP 只会回显“三”。这是为什么?
最佳答案
这是因为你没有引用你的 HTML 属性。当您拥有此代码时:
$three = "three three";
echo '<option value='.$three.'>'.$three.'</option>';
这将以 HTML 格式出现:
<option value=three three>three three</option>
PHP 字符串引号在输出中消失了。并且只有前三个
会成为属性值。另一个只会拖尾垃圾。
你需要更好的 echo :
echo '<option value="'.$three.'">'.$three.'</option>';
更好的可能是 HEREDOC string在这种情况下。并且不要忘记用于非静态内容的 htmlspecialchars()
。
关于php - 提取中间有空格的html表单选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8193093/