2015-06-02 24 views
3

我试图让我的选择选项在下拉列表中显示从我的数据库中选择的类别。我只能让它显示出来,当我点击我的提交按钮时。如何设置选定的选项<select>

<?php 

    (isset($_POST["kategori"])) ? $kategori = $_POST["kategori"] : $kategori=1; 
    $sql = "SELECT * FROM kategori" 
    $result = mysqli_query($db, $sql); 
    while($produkt = mysqli_fetch_array($result)) { 

?> 

<option <?php if ($kategori == $produkt['kategori_id']) echo 'selected'; ?> 
value="<? echo $produkt['kategori_id']; ?>"> 
<? echo $produkt['kategori_navn']; ?></option> 

<?php 
} 
?> 

显然我碰到POST的价值,这就是为什么它首先显示的类别,当我点击提交。

我需要从我的数据库中选择产品的产品ID,并使用它的ID来标记设置了哪个类别。

而我无法弄清楚如何做到这一点。

+4

什么是'$ kategori' –

+0

您的代码似乎是不错的。查看数据 – splash58

+0

它包含$ _POST值并用于更新数据库“更新产品集”fk_kategori_id ='$ kategori'WHERE produkt_id = $ id“ – nireck

回答

2

尝试

$sql = "SELECT * FROM kategori" 
$result = mysqli_query($db, $sql); 

while($produkt = mysqli_fetch_array($result)) { 

    if ($kategori == $produkt['kategori_id'] ) : ?> 
     <option selected="selected" value="<?=$produkt['kategori_id']; ?>"><?=$produkt['kategori_navn']; ?></option> 
    <?php else: ?> 
     <option value="<?=$produkt['kategori_id']; ?>"><?=$produkt['kategori_navn']; ?></option> 
    <?php endif; ?> 

<?php } ?> 

$kategori哪里是可变的,其具有先前选择的选项值。

+0

工作就像一个魅力! :-) – nireck

+0

谢谢你队友.. :) –

0

只是尝试添加这样的:

<option <?php if ($kategori == $produkt['kategori_id']) ?> value="<? echo $produkt['kategori_id']; ?>" selected="selected"><? echo $produkt['kategori_navn']; ?></option> 
+0

你所有的输出选项将被选中,只有他们中的一个将有价值集。 – Kyborek

+0

他正在使用条件知道,好吧,我同意,我需要给出详细的解释.... –

-1

尝试这样的查询: $ SQL = “SELECT * FROM kategori其中kategori_id IN($驾驶员学校)”;

您将自动获得匹配的类别,你可以选择它,而无需使用while循环

+0

OP要输出所有选项,并选择已发布的。你的代码只会输出一个选项,使选择无用。 – Kyborek

+0

也可以使用NOT触发另一个查询...以便输出将包含匹配和不匹配的选项。 –

相关问题