PHP - Php脚本覆盖html中的原始界面

时间:2012-01-26 01:31:42

标签: php javascript html

我在html中创建了3个下拉列表。对于第一个下拉列表,一旦用户选择了一个选项,就会在onchange上调用一个函数。这将在服务器上运行php脚本,然后更新第二个下拉列表。但是,在更新第二个下拉列表后,第三个下拉列表消失。我的代码有什么问题吗?如果是这样,我应该如何将其更改为?

html的

<script type="text/javascript">
function showApplications(str)
{
var xmlhttp;
if (str=="")
{
document.getElementById("appname").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{ 
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("appname").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getApplications.php",true);
xmlhttp.send(null);
}
</script>

<script type="text/javascript">
function showTargets(str)
{
var xmlhttp;    
if (str=="")
  {
  document.getElementById("target").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
document.getElementById("target").innerHTML=xmlhttp.responseText;
}
  }
xmlhttp.open("GET","getTargets.php",true);
xmlhttp.send(null);
}
</script>

</head>

<body>

<form action="post">
Environment: 
<select name="customers" onchange="showApplications(this.value)">
<option value="Environment">Select an environment:</option>
<option value="SandBox">Sandbox</option>
<option value="Production">Production</option>
</select>

</br>

</br>

Application Name: <div id="appname">
<select name="customers" onchange="showTargets(this.value)">
<option value="">Select application:</option>
</select>


Target: <div id="target">
 <select name="select">
 <option>Select one option</option>
 </select>
 </div>

</form>

</br>

</body>
</html>

.PHP

<?
$link = mysql_connect("127.0.0.1:3306", "root", ""); 
if(!$link){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("PushApplication");
$query="SELECT AppName FROM Applications";
$result=mysql_query($query);

?>
<select name="state" onchange="showTargets(this.value)">
 <option>Select application</option>
  <? while($row=mysql_fetch_array($result)) 
{
 ?>
<option value=<?=$row['AppName']?>><?=$row['AppName']?></option>
  <? 
} 
?>
</select>

1 个答案:

答案 0 :(得分:0)

您缺少元素<div id="appname">的关闭代码。在你的select元素后关闭它,你的脚本应该可以正常工作。