代码之家  ›  专栏  ›  技术社区  ›  benhowdle89

“选择”下拉列表中的空白,从mysql中提取

  •  0
  • benhowdle89  · 技术社区  · 15 年前

    我用这个填充下拉列表:

    $result = mysql_query("SELECT user from `users` order by user asc") or die(mysql_error());
                echo '<select name="user" class="user">';
                while ($row = mysql_fetch_array($result)) {
                    echo "<option value=".$row['user'].">".$row['user']."</option>";
                }
                echo '</select>';
    

    但消息来源是:

    <select name="user" class="user"><option value=joe bloggs>joe bloggs</option>
    

    所以当我这么做的时候:

    var user = $('.user').val();
    

    它只看到“乔”而不是“乔·布洛格斯”?有什么想法吗

    4 回复  |  直到 15 年前
        1
  •  4
  •   Niet the Dark Absol    15 年前
    $result = mysql_query("SELECT user from `users` order by user asc") or die(mysql_error());
            echo '<select name="user" class="user">';
            while ($row = mysql_fetch_assoc($result)) {
                echo '<option value="'.htmlspecialchars($row['user']).'">'.htmlspecialchars($row['user']).'</option>';
            }
            echo '</select>';
    

    为您更正:)

        2
  •  2
  •   jensgram    15 年前

    将值用引号括起来:

    echo "<option value=\"".$row['user']."\">".$row['user']."</option>";
    

    另外,一定要 htmlspecialchars() 为了逃避可能的引用 在里面 名字。例如。,

    $user = htmlspecialchars($row['user']);
    printf('<option value="%s">%s</option>', $user, $user);
    
        3
  •  2
  •   ZaQ    15 年前

    在while循环中尝试:

    echo "<option value=\"".$row['user']."\">".$row['user']."</option>";
    

    基本上是在选项内的值中添加一个引号

        4
  •  1
  •   Gabriele Petrioli    15 年前

    使用引号 " 围绕属性值。。

    你的html应该看起来像

    <option value="joe bloggs">joe bloggs</option>
    
    推荐文章