2014-09-26 34 views
0

我有一個下拉列表在我的表格中預先選擇基於他/她的IP用戶的國家,它工作正常。通過IP獲取用戶國家並顯示在下拉列表頂部,但不預先選擇它

問題:此下拉列表問題是必填項,所以如果用戶沒有回答,他應該不能進入下一頁。我的問題是,由於它是在列表中預選的,即使用戶沒有選擇它,他也可以進入下一頁。

我需要什麼:我想知道是否有可能通過自己的知識產權來獲得用戶的國家,但不是預選它,只是簡單表明它例如列表的前上方「保留空白「選項(這樣用戶可以很容易地看到它)。

這是我的代碼:

<label> Where were you born?<span>*</span></label> 
<div class="fieldset content"> 
<select name="q5[]" multiple="multiple" width="200px" size="10px"> 

<?php 
require 'vendor/autoload.php'; 
$gi = geoip_open('/usr/local/share/GeoIP/GeoIP.dat', GEOIP_STANDARD); 
$ip = $_SERVER['REMOTE_ADDR']; 
$preselect_country = geoip_country_name_by_addr($gi, $ip); 

include('newCountry.php'); 

while ($line = mysql_fetch_array($result)) { 
    if($preselect_country == $line['country']){ 
     $selected = "selected"; 
    }else{ 
     $selected = ""; 
    } 

echo "<option value=\"{$line['country']}\" {$selected}>{$line['country']}</option>\n"; 
    } 
    geoip_close($gi); 

?> 
</select> 
</div> 

我很感激,如果有人能幫助我解決這個問題。

感謝,

+0

你可以離開第一個項目(如果沒有其他選擇,則默認爲空白)空白(例如'' - 沒有'value'屬性),只需在下拉菜單中插入用戶的國家作爲第二項。 – 2014-09-26 12:01:40

+0

@ialarmedalien:對不起,但這是我的問題,我不知道如何插入用戶國家作爲第二個或第一個選項! :(如果它是固定的(例如總是意大利),我可以,但現在我不知道該怎麼做 – mOna 2014-09-26 12:07:12

+0

好吧,會添加一個答案! – 2014-09-26 12:07:30

回答

1

您可以創建select有空白的第一值,並把用戶的國家在列表中的第二個選項。其他國家可以低於它。要使用此功能使用你的PHP腳本,你可以創建兩個字符串,一個用於列表的頂部(與空白選項,用戶所在的國家),以及其他與該列表的其餘部分:

$list_top = "<option>Choose one...</option>\n"; 
$list_bottom = ""; 
while ($line = mysql_fetch_array($result)) { 
    if($preselect_country == $line['country']){ 
     $list_top .= "<option value=\"{$line['country']}\">{$line['country']}</option>\n"; 
    }else{ 
     $list_bottom .= "<option value=\"{$line['country']}\">{$line['country']}</option>\n"; 
    } 
} 
echo $list_top . $list_bottom; 
+0

太棒了!非常感謝!:) – mOna 2014-09-26 12:22:02

相關問題