2011-07-11 67 views
0

我正在爲我的註冊頁面, 國家名單,但我想知道如何實現它到我的註冊表格。PHP如何獲得國家下拉列表

我所做的列表文件中country.php

<select name="Country"> 
<option selected="selected" </option> 
<option value="">Country...</option> 
<option value="Afganistan">Afghanistan</option> 
<option value="Albania">Albania</option> 
<option value="Algeria">Algeria</option> 
</select> 

,並在我的註冊頁面我在我的表

<tr> 
    <th>Land </th> 
    <td><?php include 'country.php'; ?></td> 
    </tr> 

使用,但它似乎沒有保留價值的形式時,我提交。

如何讓$ Country的值等於country.php文件中所選的選項?

感謝很多:)

+8

第一個選項標籤是未封閉的,如果沒有別的,這將破壞表單。 –

+0

請顯示您試圖捕獲值的代碼。 – helloandre

回答

0

我想換行代碼:

<option selected="selected" </option> 

因此,所有你需要的是封閉<option>標籤。

您還可以從任何網站提取國家列表,如雅虎,只要去啓動頁面,然後從瀏覽器轉到查看=>頁面源。

+0

非常感謝:) – Christoph

1
<option selected="selected" </option> 

應該

<option selected="selected"></option> 
+0

使用代碼編輯器,這樣的語法錯誤將立即顯現。 – dqhendricks

+0

另外,應該可能是一個optgroup標記而不是選項標記。 – dqhendricks

+1

在這種情況下,'County ...'選項應保持原樣,因此您具有無效的值,您可以檢查用戶是否未選擇任何國家或已將選擇保留爲默認值,其中你可能會有很多來自阿富汗的用戶(是的,幾年前發生在我身上)。 –

0

除了其他人指出的語法錯誤之外,您需要將所有國家/地區保存在數組中,並循環每次迭代迴響一個選項/國家/地區的數組。並且,使select記住您之前輸入的部分是將selected="selected"部分放入選定的國家/地區選項中。

所以,總體來說它可能是這樣的:

function getSelectOfCountries($chosenCountry = null) 
{ 
    $countries = array('Afganistan', 'Albania', 'Algeria', ...); 
    echo "<select name='country' id='country'>\n"; 
    echo "<option value=''>Country...</option>\n"; 
    foreach ($countries as $country) 
    { 
    echo "<option value='$country'"; 
    if ($chosenCountry == $country) 
    { 
     echo " selected='selected'"; 
    } 
    echo ">$country</option>\n"; 
    } 
} 

你把這個函數在一個包含文件。並且形式如下:

<?php 
if (isset($_GET['country'])) 
{ 
    $country = $_GET['country']; 
} else { 
    $country = null; 
} 
?> 
<form ...> 
... 
<tr> 
    <th><label for="country">Land </label></th> 
    <td><?php getSelectOfCountries($country);?></td> 
</tr> 
... 
</form> 
相關問題