簡體   English   中英

用MySQL數據填充選擇框

[英]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.

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