2016-11-20 157 views
1

虽然我已经研究过了,但我找不到任何解决方案。我需要将数据库值(“Default”)作为下拉列表的预选值。从MySQL数据库中预先选择的下拉列表值

<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> 

你能帮我解决吗?

回答

1

回声之前只需创建一个变量,像这样:

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

然后回声改成这样:

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

感谢朋友,也有一些不必要的'“'痕迹在你的代码。除了那个以外,这解决了我的问题。但现在的问题是所选择的价值是不会到数据库现在,始终以‘默认’被插入到数据库你的 – EKBG

+0

编辑的代码: '$ SQL = mysqli_query($连接, “SELECT CUSTOMER_NAME FROM客户”); 而($行= mysqli_fetch_array($ SQL,MYSQLI_ASSOC)){ \t。 \t \t \t \t \t \t \t \t \t $ selected =((strtolower($ row ['customer_name'])=='default')? 'selected':''); echo''。$行[ 'CUSTOMER_NAME']'。';}' – EKBG

+0

这是错误的。我的示例中的双引号不是多余的。所有的属性内容都应该用双引号括起来。 – junkfoodjunkie

1

这可以用在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>"; 
    } 
} 
?> 

请注意第一个回波上的选定标签。

+0

感谢朋友,您错过了在'while'循环中'$ row'之后的“=”标记。除此之外,这解决了我的问题。但现在的问题是选定的值现在不会进入数据库,总是将“Default”插入到数据库中。 – EKBG

+0

这是因为您插入“默认”作为选定的选项的值。 –

+0

是的,但我怎样才能将选择值插入数据库,忽略默认值? – EKBG

0
$query="SELECT customer_name FROM customers"; 
$result = @mysql_query ($query); 
echo "<select name=customer_name value=' '>"; 
while([email protected]_fetch_array($result)){ 
echo "<option value=$drop[customer_name]>$drop[customer_name]</option>"; 
} 
echo "</select>"; 
+0

如果您选择任何值,那么这肯定会插入到您的表中 –

相关问题