这是我的第一页,我使用组合框提交查询....
<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页面,我使用$ _POST来获取变量但它没有工作......
<?php
print "<br><br>D.Name<select name='t2' size='1' single>";
$conn=mysql_connect("localhost","root","");
mysql_select_db("mysql",$conn);
$str="select * from ".$_POST["t1"];
$rs=mysql_query($str);
while($row=mysql_fetch_array($rs))
{
print "<option value=ASSAM>".$row['dname']."</option>";
}
mysql_close($conn);
print "</select>";
?>
答案 0 :(得分:1)
在您执行任何操作之前,请先执行以下操作:
POST
变量进行SQL调用。巨大的禁忌。答案 1 :(得分:0)
你这样做
$str="select * from ".$_POST["t1"];
除非您确实拥有与
等值相对应的表格<option value="ANDHRA PRADESH">ANDHRA PRADESH</option>
<option value="ASSAM">ASSAM</option>
<option value="BIHAR">BIHAR</option>
您可能想要做类似
的事情$str = "SELECT * FROM someTable WHERE someColumn = ".mysql_real_escape_string($_POST['t1']);
此外,
之后$rs=mysql_query($str);
添加
if(!$rs) {
trigger_error (mysql_error().'SQL: '.$str);
exit();
}
如果你检查一下你正在做什么工作,你会发现它更容易调试。如果您仍未在表单提交中返回任何内容(这是我假设发生的事情),请检查您的Javascript。
答案 2 :(得分:0)
你唯一要理解的是:
没有 2个php页面。
有一个HTML / JS页面和一个php页面。
将浏览器中运行的HTML / JS代码与服务器上运行的PHP代码区分开来非常重要。
至于你的特殊问题,这很容易。
xmlhttp.open( “GET”, “infor.php”,TRUE);
它清楚地表明使用了GET方法。为什么你期望$ _POST数组中的任何数据呢? ;)
答案 3 :(得分:0)
他也没有在GET请求中发送任何参数
你需要形成像
这样的参数var parms =“t1 =”+ encodeURIComponent(document.getElementById('list1')。value)
记得为此包装url编码。
在php页面上你应该使用url_decode($ _ GET ['t1'])我已在javascript代码的其他帖子中回答了