簡體   English   中英

顯示下拉菜單中的選定值

[英]show selected value from dropdown

嗨,我一直在處理一個表格,其中有一個下拉菜單,它的值來自數據庫。 我的問題是,提交表單后,它不顯示所選的值。 可能是什么問題?

<select name="professional" />
        <option value="">Choose one</option>
            <?php 
                $result2 = mysql_query("SELECT * FROM professional");
                while($row2 = mysql_fetch_array($result2))
                {
                    $prc = $row2['name'];
                    $prof = $row2['prcno'] ."\t"."|\t".  $row2['name'] ."\t"."|\t".$row2['profession'];
                    echo "<option value ='$prc'>$prof</option>";
                }

            ?>
        </select>

        <select name="professional" disabled/>
            <option value="">Choose one</option>
            <?php 
                $result2 = mysql_query("SELECT * FROM professional");
                $i=0;
                while($row2 = mysql_fetch_array($result2))
                {
                    $prc = $row2['name'];
                    $p1[$i] = $prc;
                    $prof = $row2['prcno'] ."\t"."|\t".  $row2['name'] ."\t"."|\t".$row2['profession'];
                    $p2[$i] = $prof;
                    if($_POST['professional'] == $p1[$i])
                    {
                        echo "<option selected value ='$p1[$i]'>$p2[$i]</option>";
                    }
                    else
                    {
                        echo "<option value ='$p1[$i]'>$p2[$i]</option>";
                    }

                }

            ?>
        </select>

在我看來,您並沒有增加$ i,因此您在while循環的每次迭代中都繼續覆蓋$ p1 [0]和$ p2 [0]。

因此,請在循環的開頭或結尾添加$ i ++-或將它們的全部使用放到數組($ p1和$ p2)中,並像在第一個代碼塊中一樣使用$ prc和$ prof-或你需要他們的東西嗎?

另一件事,嘗試刪除value='$ p1 [$ i]'之間的空格-但我不確定這是否是一個問題。

嘗試
selected="selected"

代替

selected

將這些行更改為

echo "<option selected value ='<?php echo $p1[$i]; ?>'><?php echo $p2[$i]; ?></option>";

並且不要忘記增加$ i

希望它會有所幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM