<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//frm.submit();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","infor.php",true);
xmlhttp.send();
}
</script>
<body bgcolor="white">
<table style="position: absolute; left: 00px; top: 00px;">
<tr><td width="1000" height="400" style="background:#666666">
<table style="position: absolute; left: 40px; top: 40px;">
<tr><td width="900" height="300" style="background:#C8C8C8">
<form name="frm" action="info.php" method="post">
State Name<select name="t1" id="list1" size="1" single onchange="loadXMLDoc();">
<option value="ANDHRA PRADESH">ANDHRA PRADESH</option>
<option value="ASSAM">ASSAM</option>
<option value="BIHAR">BIHAR</option>
<option value="CHATTISGARH">CHATTISGARH</option>
<option value="DELHI">DELHI</option>
<option value="GOA">GOA</option>
<option value="GUJRAT">GUJRAT</option>
<option value="HARYANA">HARYANA</option>
<option value="KERLA">KERLA</option>
<option value="MANIPUR">MANIPUR</option>
<option value="ORISSA">ORISSA</option>
<option value="PANJAB">PANJAB</option>
<option value="TAMILNADU">TAMILNADU</option>
<option value="WEST BANGAL">WEST BANGAL</option>
</select>
<div id="myDiv">
</div>
</form>
<input type="button" value="Close this window" onclick="self.close()">
</td></tr>
</table>
</body>
</head>
</html>
这是我的PHP脚本....
<?php
print $_GET["t1"];
?>
但不知道为什么它不起作用....我无法从db获取数据。 看起来$ _GET [“t1”]对我不起作为任何人都可以帮我修复此错误。
答案 0 :(得分:1)
问题似乎很简单;你没有向表格发送任何内容。
好像你假设AJAX代码发送表单,但事实并非如此。您必须手动将变量放入URL中。
我从来没有按照你的方式完成AJAX(下面有更多内容),而不是......
xmlhttp.open("GET", "infor.php", true);
...你必须将变量传递给'infor.php'。请参阅此内容以演示URL字符串的外观:
xmlhttp.open("GET", "infor.php?var1=value1&var2=value2", true);
...虽然在您的特定情况下,由于您的变量不是硬编码,而是来自表单,您可以像这样引用表单变量:
xmlhttp.open("GET", "infor.php?t1=" + document.getElementById("list1").value, true);
...最后,您应对数据进行URL编码,如下所示:
xmlhttp.open("GET", "infor.php?t1=" + encodeURIComponent(document.getElementById("list1").value), true);
这应该有用,但既不漂亮也不方便。你真的应该使用一些库来做AJAX而不是自己做所有的细节工作。 jQuery和Prototype都提供了出色的AJAX功能实现。
其中一个教程将向您展示如何做您正在尝试做的事情,这样您就不必自己将URL变量用勺子提供给请求。
你可以在这里找到jQuery:http://jquery.com/
你可以在这里找到Prototype:http://www.prototypejs.org/
使用哪种AJAX并不重要,在这方面它们的工作方式非常相似。
答案 1 :(得分:0)
您应该创建参数 喜欢
var parms =“t1 =”+ document.getElementById('list1')。value;
和xmlhttp.open(“GET”,“infor.php?”+ parms,true);
这会将您的选择框t1发送到该php页面。
在php页面上,您可以通过打印$ _GET ['t1'] 来检索参数