[英]populate select box with mysql data
我對此有些麻煩。
我有一個具有下表的數據庫:國家->世界上所有國家/地區已添加城市->城市也已添加user_profile->用戶配置文件,其中包含“國家/地區”和“城市”字段。
一切正常,即使盒子裝滿也可以。 但是我不知道如何為國家和城市獲得用戶的SELECTED值。
我有以下代碼:
Select Country: <br />
<select id="countries">
<option value="">--</option>
<?php
$sql = "SELECT country, title FROM countries ORDER BY title ASC";
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs))
{
echo "<option value=\"".$row['country']."\">".$row['title']."\n ";
}
?>
</select>
Select City: <br />
<select id="cities">
<option value="">Select one</option>
<?php
$sql = "SELECT country, title FROM cities ".
"ORDER BY title ASC";
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs))
{
echo "<option class=\"".$row['country']."\" value=\"".$row['title']."\">".$row['title']."\n ";
}
?>
</select>
現在,我需要在表user_profile中簽入他選擇的國家和城市,並顯示給他。
我還使用jchained(jquery插件)使兩個選擇框一起工作。
我該如何實現? 如果我需要發布其他任何內容,請告訴我。
提前致謝。
您這里缺少很多代碼,但我會盡力提供幫助。
首先,假設您已經將用戶選擇存儲在user_profile表中,並且它們是糾正關系的外鍵。
要獲得用於重新填充帶有所選標志的選擇框的所選ID,請使用:
SELECT country, city FROM user_profile where id = $user_id;
要獲取文本值,您可以執行以下操作:
SELECT country.title as country, city.title FROM user_profile LEFT JOIN countries ON user_profile.country = country.id LEFT JOIN cities ON user_profile.city = cities.id WHERE user_profile.id = $user_id;
如果您不是將它們存儲為外鍵關系,而是將其存儲為user_profile表中的字符串標題,則需要執行以下操作:
SELECT country.title as country, city.title FROM user_profile LEFT JOIN countries ON user_profile.country = country.title LEFT JOIN cities ON user_profile.city = cities.title WHERE user_profile.id = $user_id;
然后,您可以使用這些結果向用戶顯示或在選項框中設置“ SELECTED”標志。
您只是說您在選擇值后不知道要做什么嗎? 如果是這樣,那么您只需要使用表單將值發布到新頁面即可。 在接收頁面上,您可以運行查詢以更新用戶的個人資料。
抱歉,如果我的回復不夠詳細> <
編輯哦,我現在可能明白你的意思了。 您能夠正確存儲它,但是如果用戶先前設置的是正確的選項,則希望將正確的選項標記為已選中嗎? 如果是這樣,那么您可以查詢該值,然后在while循環內部只需添加檢查以查看$user_country == $row['country']
,如果是,則echo ' SELECTED '
。 希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.