我正在努力让以下工作:我想将一个下拉菜单问题的答案发送到php脚本,这反过来会让我从数据库中返回一个新的选择。然后,我想使用这个新选项来更改辅助下拉菜单中的可用输入选项
最终目标是通过提供初步限制(选择市政当局)将选择范围从大约200个(日托中心)限制到大约15个
供参考“gem(eente)”是市政当局
剥离了我到目前为止的javascript / ajax部分:
function loadXMLDoc(str) {
var xmlhttp;
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("gemeente").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(gem);
alert(gem)
}
php部分就是这个
<?php
include 'dbconnection.php';
$gem=$_POST["gem"];
$gennam=mysql_query("SELECT * FROM psz WHERE Gemeente='$gem'");
echo "ik ben in dit php script geweest";
$test="willekeurige string";
?>
和相关的html / php部分如下:
<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>
<select name="psznaam" id="test" style="display:none">
<?php while($row=mysql_fetch_array($gennam)){?>
<option value="<?php echo $row['NaamPSZ']; ?>"><?php echo $row['NaamPSZ'];?>
</option>
<?php } ?>
</select>
javascript中的警报(gem)部分可以工作,所以如果人们为微型选择一个选项,它会显示在屏幕上,但是php部分中的“echo”没有显示任何内容,所以我认为ajax没有好好看看我的php。
有人可以告诉我我犯了什么愚蠢的错误,因为我无法弄明白。 提前谢谢!
答案 0 :(得分:1)
我刚刚在你后面的PHP脚本中发出了一个快速请求,它正在输出echo的内容。
xmlhttp.open("POST","http:www.doenwatikkan.nl/jeroen/dynamic.php",true);
上面的网址似乎在'http:'之后缺少'//',我想你的浏览器会向`current_url / http:www ...'发出请求,这当然不会有效