【问题标题】:string concatenation not working in select options field字符串连接在选择选项字段中不起作用
【发布时间】:2015-09-24 02:57:13
【问题描述】:

我在表单中嵌入了以下 php 代码(目的基本上是显示和发布类似“城市(国家)”的内容):

 <select name="city">
        <option selected value=""></option>
        <?php
        foreach ($result_array as $rowarray){

            echo '<option value='.$rowarray[1].' ('.$rowarray[0].'>'.$rowarray[1].' ('.$rowarray[0].')</option>';
        }
        ?>

有趣的是,当我发布这个表单时,这就是发送到 $_POST 变量的内容:

array (size=7)
'city' => string 'Abu' (length=3)

由于某种原因,城市名称中空格后面的所有内容都没有连接起来。 现在事情就是这样,当我这样编码时:

 echo '<option>'.$rowarray[1].' ('.$rowarray[0].')</option>';

那么这就是 $_POST 中的结果:

array (size=7)
'city' => string 'Abu Simbel (Egypt)' (length=18)

所以当我把它放在选项元素的“值”属性中时,基本上完全相同的连接代码不起作用。 我在这里错过了什么?

加法:当我这样连接时会发生同样的事情:

'<option value='.$rowarray[1].'!'.$rowarray[0].'>'

所以不是因为括号前面的空格。

【问题讨论】:

  • 如果你的value包含空格,那么你需要引用它,严格来说,HTML元素属性无论如何都应该被引用......HTML 101
  • 为什么标签里面有括号?

标签: php html forms


【解决方案1】:

您需要做的是将您的值括在 " 中(并关闭括号):

echo '<option value="'.$rowarray[1].' ('.$rowarray[0].')">'.$rowarray[1].' ('.$rowarray[0].')</option>';
                    ^right here                        ^ and here

【讨论】:

    猜你喜欢
    • 2016-03-02
    • 1970-01-01
    • 2013-05-04
    • 2013-01-28
    • 1970-01-01
    • 2011-01-13
    • 2021-01-26
    • 1970-01-01
    相关资源
    最近更新 更多