php - 提取中间有空格的html表单选项值

标签 php html

从另一个 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/

相关文章:

javascript - jQuery 只为被点击的元素运行函数

javascript - 我无法将 var 设置为 window.screenY

html - 按制表符时的 CSS 选择器

php - 从 MySQL 生成表到 PDF(使用 PHP)

php - 在 PHP 中将字符串解释为 HTML

php - 使用 PHP 中的按钮从数据库中删除记录

javascript - 将一个输入替换为另一个动态创建的输入

javascript - HTML5 Canvas 游戏循环增量时间计算

css - 对齐 div 和 ul

php - 我在 html 上的 CSS 代码错误(未正确匹配)