POST后,选择框无法获取带有空格的选项值


Select box fails to fetch option value with white spaces after POST

我有一个选择框,它从数据库中获取值。数据库中的选项有:

  1. 纽约市

  2. 济州岛

选择框显示数据库中的精确值。我有一个提交按钮,它将值张贴到另一个页面。我的问题是,当我回显所选的选项值时,空白后面的单词不会显示,即它只显示"Newyork"。这是我的代码:

   <select name="users_desc" id="hometexts">
   <option selected='selected' value='' disabled='disabled'  >Select Name</option>";
    <?php 
    $result = mysql_query("SELECT public_desc,public_id FROM table");
                     while ($row = mysql_fetch_array($result)) 
                    { 
                          if ($_GET['users_desc']==$row["public_id"]) 
                        {
                           echo '<option selected="selected" value='.$row["public_desc"].'>'.$row["public_desc"].'</option>';
                        } 
                        else 
                        {
                           echo '<option value='.$row["public_desc"].'>'.$row["public_desc"].'</option>';
                        }
                    }
                    ?>
                    </select>

用于将选项值张贴到另一页的代码。

if(isset($_POST['login_btn']))
{
    $desc=$_POST['users_desc'];
    echo $desc;
    header("location:publicUserReports.php");
}

我只想得到完整的价值。

您需要引用值

value="'.$row["public_desc"].'"

所以

echo '<option selected="selected" value="'.$row["public_desc"].'">'.$row["public_desc"].'</option>';

当你看HTML时,它必须显示

<option value="Jeju island">

而不是

<option value=Jeju island>

为了获得更多信息,"answers"之间有很大的区别如果要输出没有变量可连接的字符串/文本,则应始终使用单引号(')。

但如果你有一些变量要连接,你应该使用(可选)双引号(")。我个人更喜欢使用它,因为它更可读。

示例:

如果我只是想输出,就说:我喜欢编码。然后我使用:

echo 'I love Coding';

但当我有一些变量要连接时,我使用:

echo "I $action Coding";

现在基于您的问题:

echo "<option selected='selected' value='$row[public_desc]'>$row[public_desc]</option>";

对我来说,这更可读,也不容易出错:)