【问题标题】:filling innerhtml of dropdown menu with specific data用特定数据填充下拉菜单的 innerhtml
【发布时间】:2013-02-14 10:03:07
【问题描述】:

我有一个 xmlhttp/php 问题。我有一个下拉菜单,人们可以在其中选择自治市。然后我想将该自治市内的可能选项列表返回到二级下拉菜单。

人们首先选择一个自治市(下面的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-)服务器并检索与该市镇中的名称匹配的名称列表的函数。 到目前为止,我相关的 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)

           }

Alert(gem) 显示选定的选项,所以我知道至少这是可行的。 检索正确值的 php 是这样的:

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

现在问题在于二级下拉菜单的填充

<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>

java函数完成后,下拉菜单完全为空。谁能告诉我如何才能在该菜单中实际获取相关数据? 任何帮助将不胜感激!

【问题讨论】:

  • 你能定义 $selectall var 吗?
  • 是的,对不起。 $selectall = mysql_query("SELECT * FROM psz");
  • 您确定此表中有一些数据吗?另请注意,您的选择有一个 style="display:none" 所以它不会出现:)
  • 是的,在选择第一个下拉菜单之前,该框是隐藏的。它出现(很快以 $selectall 作为内容),然后当应该返回值时它再次变为空白。
  • 你试过用 appendChild 代替 innerHTML 吗?

标签: php javascript mysql ajax xmlhttprequest


【解决方案1】:

您尚未发送带有该网址的gem。试试xmlhttp.open("POST","http://www.doenwatikkan.nl/jeroen/dynamic.php?gem="+gem,true); 并在您的dynamic.php 页面中由$_POST["gem"] 获取它

【讨论】:

  • 谢谢,这已经是一个步骤,我不确定它是否真的有效。有没有一种简单的方法可以检查数据库中的正确信息是否真的被发回?因为我仍然没有看到网页有任何变化。
  • @Jeroen 你是基本的ajax。所以你需要维护ajax的规则。以上是ajax的规则。
  • 好的,但是我如何检查这段代码是否真的向我的 php 发送了一些东西?如果在我的 php 中我会创建 $test=$_POST["gem"],并且我想在我的 html 中检索 $test。我不能简单地写 ,因为它不会重新加载整个页面,对吗?那我该怎么办呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 2011-08-17
  • 2015-07-04
  • 2018-10-22
  • 2010-10-06
  • 1970-01-01
相关资源
最近更新 更多