2013-02-14 104 views
0

我有一个xmlhttp/php问题。我有一个下拉菜单,人们可以选择直辖市。然后,我想将该市内可能选项的列表返回到辅助下拉菜单。用特定数据填充下拉菜单的innerhtml

人首先选择一个自治市(HTML下面的代码):

<select name="pszplaats" id="gemeente" onchange="fdisplay();loadXMLDoc(this.value)"> 
    <?php while($row=mysql_fetch_array($selectgem)){?> 
    <option value="<?php echo $row['Gemeente']; ?>"><?php echo $row['Gemeente'];?> 
    </option> 
    <?php } ?> 
    </select> 

loadXMLDoc是应这个答案发送到(PHP的)服务器和retreive匹配那些在直辖市名称的列表功能。 到目前为止我相关的Java/XML/AJAX代码是这样的:

function loadXMLDoc() { 
     var xmlhttp; 
     gem=document.getElementById("gemeente").value; 
     if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
     else 
      {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange=function(){ 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
       document.getElementById("test").innerHTML=xmlhttp.responseText; 
       } 
      } 
     xmlhttp.open("POST","http://www.doenwatikkan.nl/jeroen/dynamic.php",true); 
     xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
     xmlhttp.send(); 
     alert(gem) 

      } 

警报(GEM)显示所选择的选项,让我知道,至少这工作。 中检索正确的价值观的PHP是这样的:

$gem=$_POST["pszplaats"]; 
$gennam=mysql_query("SELECT * FROM psz WHERE Gemeente=$gem"); 
echo $gennam["$gem"]; 

现在Java函数完成的下拉菜单后,问题就出在二级卓尔下拉菜单

<select name="psznaam" id="test" style="display:none"> 
<?php while($row=mysql_fetch_array($selectall)){?> 
<option value="<?php echo $row['NaamPSZ']; ?>"><?php echo $row['NaamPSZ'];?> 
</option> 
<?php } ?> 
</select> 

的填充是完全空的。任何人都可以打电话给我,我怎样才能真正获得该菜单中的相关数据? 任何帮助将不胜感激!

+0

您可以定义$ selectall var? – robinef 2013-02-14 10:18:52

+0

是的,对不起。 $ selectall = mysql_query(“SELECT * FROM psz”); – Jeroen 2013-02-14 10:20:27

+0

您确定此表中有一些数据吗?另外请注意,您的选择有一个style =“display:none”,因此它不会出现:) – robinef 2013-02-14 10:23:01

回答

0

您还没有通过网址发送gem。尝试xmlhttp.open("POST","http://www.doenwatikkan.nl/jeroen/dynamic.php?gem="+gem,true); 并在您的dynamic.php页面撷取它$_POST["gem"]

+0

谢谢,这已经是我不确定它是否真正起作用的一个步骤。有没有一种简单的方法可以检查数据库中的正确信息是否实际发回?因为我仍然没有看到网页上的任何变化。 – Jeroen 2013-02-18 09:16:34

+0

@Jeroen你是基本的ajax。所以你需要维护ajax的规则。以上是ajax的规则。 – ripa 2013-02-18 09:25:44

+0

好吧,但我将如何检查此代码是否实际发送了一些东西给我的PHP?如果在我的PHP中,我会创建$ test = $ _ POST [“gem”],并且我想要在我的html中检索$ test。我不能简单地写<?php echo $ test?>,因为它不会重新加载整个页面,对吧?那么我怎么去解决呢? – Jeroen 2013-02-18 10:18:58