在选择选项字段中,字符串连接不起作用


string concatenation not working in select options field

我有以下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"属性中时,基本上相同的连接代码不起作用。我遗漏了什么?

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

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

所以它不是由于括号前的空格。

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

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