我无法在JavaScript中显示select的值

时间:2015-05-29 13:03:51

标签: javascript php select geonames

我有一份国家/地区列表。我使用GeoNames的功能来检测我们所在的国家/地区并将其显示在列表中。有用。 但是,我想要检索此值,我尝试显示它,但只显示第一个值。 代码:

<!-- Code HTML countries list -->
<select id="countrySelect" name="country">
<?php
$reponse = $bdd->query('SELECT * FROM pays'); 
echo '<OPTION VALUE="">Pays</OPTION>';
while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC))
    { 
    echo '<OPTION VALUE="'.$donnees["id_pays"].'">'.$donnees["pays"].'</OPTION>';
    echo $donnees["pays"];
    } 
?>

代码Javascript:

function setDefaultCountry() {
 var countrySelect = document.getElementById("countrySelect");
   for (i=0;i< countrySelect.length;i++) {
   if (countrySelect[i].value == geonamesUserIpCountryCode) {
    countrySelect.selectedIndex = i;
    }
     }
   }
/* I want to display the country selected here !!!!!!*/
var c = document.getElementById("countrySelect");
alert(c.options[c.selectedIndex].text);

1 个答案:

答案 0 :(得分:0)

为了演示目的,我对你的代码做了一些改动。

这样做的方法是在Select上设置OnChange事件。 如果您随后选择了一个选项,它将触发该事件。

function setDefaultCountry() {
  var countrySelect = document.getElementById("countrySelect");
  for (i = 0; i < countrySelect.length; i++) {
    if (countrySelect[i].value == geonamesUserIpCountryCode) {
      countrySelect.selectedIndex = i;
    }
  }
  check();
}



function check() {
  var sele = document.getElementById("countrySelect");
  alert(sele[sele.selectedIndex].text);
}
<!-- Code HTML countries list -->
<select id="countrySelect" name="country" onchange="check()">

  <OPTION VALUE="Test1">test1</OPTION>
  <OPTION VALUE="Test2">test2</OPTION>
  <OPTION VALUE="Test3">test3</OPTION>
  <OPTION VALUE="Test4">test4</OPTION>
  <OPTION VALUE="Test5">test5</OPTION>

编辑: 只需在body.onload例程中添加以下内容:     setDefaultCountry();

格雷茨:)