2014-09-26 32 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

相关问题