[英]problem related to communication between two php pages
這是我使用組合框提交查詢的第一頁。
<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>";
?>
在執行任何操作之前,請先執行以下操作:
POST
變量進行SQL調用。 巨大的不。 你做這個
$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個php頁面。
有一個HTML / JS頁面和一個php頁面。
將瀏覽器中運行的HTML / JS代碼與服務器上運行的PHP代碼區分開是非常重要的。
至於您的特定問題,這很容易。
xmlhttp.open(“ GET”,“ infor.php”,true);
它清楚地表明使用了GET方法。 為什么您會期望$ _POST數組中有任何數據呢? ;)
他也沒有在GET請求中發送任何參數
您需要形成如下參數
var parms =“ t1 =” + encodeURIComponent(document.getElementById('list1')。value)
請記住為此包裝網址編碼。
在php頁面上,您應該使用url_decode($ _ GET ['t1'])
我在您的其他JavaScript標記帖子中回答了t,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.