2011-07-29 87 views
0

我試圖創建一個動態的下拉菜單,從數據庫中拉城市名稱(並自動更新,因爲我添加新的城市),然後當選擇轉到那個城市頁面。下拉菜單起作用,但在選擇城市時不會發生任何事情。不知道我哪裏錯了。下面是我有動態下拉數據庫,但選項價值不工作

<?php mysql_select_db ("db_name"); 
    echo "<select name=database><option value='.'>Select Your City</option>"; 
    $result = mysql_query ("select DISTINCTROW city_head from database order by city_head"); 
    while ($city_head=mysql_fetch_assoc($database)) { 
    echo "<option value="#CityIDPage">".$city_head[city_head]."</option>\n"; } 
    echo "</select><p>"; 

?>

+0

你預計會發生什麼?選擇字段值對於每個選項都是相同的,並且爲了獲得新的城市,您必須刷新頁面以便PHP再次查詢數據庫。 – Daff

回答

0

<select>元素選擇了新的選項時,不改變固有的頁面位置。

您可以添加此功能 - 改變頁面位置的value所選選項的值 - 通過將以下屬性select

onchange="window.location.href=this.options 
[this.selectedIndex].value" 

<?php 
    mysql_select_db ("db_name"); 
    echo "<select name=database onchange=\"window.location.href=this.options 
[this.selectedIndex].value\"><option value='.'>Select Your City</option>"; 
    $result = mysql_query ("select DISTINCTROW city_head from database order by city_head"); 
    while ($city_head=mysql_fetch_assoc($database)) { 
     echo "<option value="#CityIDPage">".$city_head[city_head]."</option>\n"; 
    } 
    echo "</select><p>"; 

注意您必須爲每個城市適當地設置value;我不知道你的數據庫模式,所以我不能在那裏給你提供建議。

+0

這很棒Cheeken。謝謝!我有一個後續問題。下拉列表現在已鏈接出來,但我無法使網址變爲動態。簡而言之,每個城市都有自己的頁面ID,我似乎無法得到迴應唯一URL的價值。 echo「

+0

'$ CityIDPage'是你在那裏的代碼片段中的一個變量嗎?使用當前的實施方式將'id'分配給什麼值,以及您希望爲其分配什麼值?這是100%的猜測,因爲我不知道你的數據庫模式是什麼樣的,但是可能你想要的是'echo'

+0

是的,$ CityIDPage是具有數值的主鍵。所以'$ city_head'將包含城市名稱,'$ CityIDPage'將包含一個唯一的記錄號。 我試圖做的事情是,當您在下拉菜單中點擊$ city_head時,它會將您帶到由記錄編號反映的唯一網址。例如,'echo'