【问题标题】:Pre-selected drop down list value from MySQL database从 MySQL 数据库中预先选择的下拉列表值
【发布时间】:2016-12-24 00:13:36
【问题描述】:

虽然我已经研究过,但我找不到任何解决方案。我需要获取数据库值(“默认”)作为下拉列表的预选值。

<select name="listCustomer" id="listCustomer">
    <?php 
    $sql = mysqli_query($connection,"SELECT customer_name FROM customers");
    while ($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)){
    echo "<option value=\"" .   $row['customer_name'] . "\">" . $row['customer_name'] . "</option>";}
    ?>
</select>

你能帮我解决这个问题吗?

【问题讨论】:

    标签: php html mysql


    【解决方案1】:

    只需在 echo 之前创建一个变量,例如:

    $selected = ((strtolower($row['customer_name']) == 'default') ? 'selected' : '');
    

    然后将 echo 改成这样:

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

    【讨论】:

    • 感谢朋友,您的代码中有一些不必要的" 标记。除此之外,这解决了我的问题。但是现在的问题是选择的值现在不会进入数据库,总是“默认”插入到数据库中。
    • 你的编辑代码:$sql = mysqli_query($connection,"SELECT customer_name FROM customers"); while ($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)){ $selected = ((strtolower($row['customer_name']) == 'default') ? 'selected' : ''); echo '&lt;option '.$selected.' value='.$row['customer_name'].'&gt;'.$row['customer_name'].'&lt;/option&gt;';}
    • 错了。我的示例中的双引号并不是多余的。所有属性内容都应该用双引号括起来。
    • 啊,对不起,有一个流浪双引号,我现在可以看到了。 &lt;/option&gt;之前的最后一个双引号-我已经更新了答案,试试新的代码行。
    • 谢谢老兄。它有效,我现在的问题总是预先选择的“默认”值将进入数据库。我想要的是在数据库中插入默认值,如果用户没有选择其他选项,否则用户选择值必须进入数据库。
    【解决方案2】:

    这可以通过在 customer_name 上使用 if 语句来完成

    $sql = mysqli_query($connection,"SELECT customer_name FROM customers");
    while ($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)){
         if($row["customer_name"] === "Default"){
          echo "<option value=\"" .   $row['customer_name'] . "\" selected>" . $row['customer_name'] . "</option>";
         } else {
           echo "<option value=\"" .   $row['customer_name'] . "\">" . $row['customer_name'] . "</option>";
         }
     }
     ?>
    

    注意第一次回显时选择的标签。

    【讨论】:

    • 感谢朋友,您在while 循环中在$row 之后错过了“=”标记。除此之外,这解决了我的问题。但是现在的问题是选择的值现在不会进入数据库,总是“默认”插入到数据库中。
    • 那是因为您插入“默认”作为所选选项的值。
    • 是的,但是如何将选择值插入数据库,而不考虑默认值?
    【解决方案3】:
    $query="SELECT customer_name FROM customers";
    $result = @mysql_query ($query);
    echo "<select name=customer_name value=' '>";
    while($drop=@mysql_fetch_array($result)){
    echo "<option value=$drop[customer_name]>$drop[customer_name]</option>";
    }
    echo "</select>";
    

    【讨论】:

    • 如果您选择任何值,那么这肯定会插入到您的表格中
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多