php:无法在ajax.php文件中获取$state的值。甚至不使用isset()。请让我知道什么是解决方案 选择状态 挑选
使用empty()检查state的值是否为空,或者使用$\u REQUEST[state]从url获取值php:无法在ajax.php文件中获取$state的值。甚至不使用isset()。请让我知道什么是解决方案 选择状态 挑选,php,Php,使用empty()检查state的值是否为空,或者使用$\u REQUEST[state]从url获取值 <?php $link = mysqli_connect('localhost', 'root', '', 'slcsa'); ?> <form name="form1" action="" method="post"> <table> <tr> <td>Select State</td>
<?php
$link = mysqli_connect('localhost', 'root', '', 'slcsa');
?>
<form name="form1" action="" method="post">
<table>
<tr>
<td>Select State</td>
<td>
<select id="statedd" onchange="change_state()">
<!--we will add onchange to perform Ajax using function change_state()-->
<option value="">Select</option>
<?php
$res = mysqli_query($link,"SELECT * FROM state_code");
while($row = mysqli_fetch_array($res)){
?>
<option value="<?php echo $row["State Code"]; ?>"> <?php echo $row["State Name"]; ?> </option>
<?php
}
?>
</select><
/td>
</tr>
<!--create another dropdownlist-->
<tr>
<td>Select District</td>
<td>
<div id="districtdd">
<select>
<option>Select</option>
</select>
</div>
</td>
</tr>
</table>
</form>
<p id="demo"></p>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript">
function change_state()
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST", "ajax.php?state="+document.getElementById("statedd").value, false);
xmlhttp.send(null);
document.getElementById("districtdd").innerHTML=xmlhttp.responseText;
}
</script>
this is ajax.php
<?php
//$state=intval($_POST['state']);
$link = mysqli_connect('localhost', 'root', '', 'slcsa');
if (!$link) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connection to database established";
//$state = (isset($_POST['state']) ? $_POST['state'] : null);
//if(isset($_POST["state"])){
//$state=$_POST["state"];
//}
$state=$_POST['state']; //my query is not working. I am not able to get $sate value. here $sate value cannot get the value.
if ($state!=""){
$res = mysqli_query($link,"SELECT * FROM district_code WHERE State Code='".$state."'");
echo "<select>";
while($row = mysqli_fetch_array($res)){
echo "<option>"; echo $row["District Name"]; echo "</option>";
}
echo "</select>";
}
mysqli_close($link);
?>
不建议使用同步XMLHttpRequest(async=false),因为
JavaScript将停止执行,直到服务器响应就绪。
如果服务器忙或慢,应用程序将挂起或停止
同步XMLHttpRequest正在从中删除
web标准,但此过程可能需要很多年
鼓励现代开发人员工具警告使用同步
请求并可能在发生InvalidAccessError异常时引发该异常
欢迎来到堆栈溢出。阅读并回答。谢谢Jasinth的回复。即使使用上述代码,地区名称也不会填充。仍然无法处理查询。我认为$state无法从index.php文件中接收值……另外,请告诉我这一行“xmlhttp.open(“POST”,“ajax.php?state=“+document.getElementById(“statedd”).value,false”);”……是否有任何错误,以及ajax.php中缺少数组键file@ShahnawazKhan错误在于没有在
send()中指定索引值
现在我更新了必要的信息,您对我的答案满意吗?@Jasinth…我对您的答案满意。上面的代码正在使用$\u GET。即使在编辑了上面的代码之后,它仍然不起作用……我已经在w3school看到了这个建议,但我仍然认为我的代码没有使用$\u POST运行。谢谢你给我时间…如果你找到解决方案,请告诉我
$state=$_POST['state'] ;
if (!empty($state)){
$res = mysqli_query($link,"SELECT * FROM district_code WHERE State Code='".$state."'");
echo "<select>";
while($row = mysqli_fetch_array($res)){
echo "<option>".$row["District Name"]."</option>";
}
echo "</select>";
}
function change_state(st)
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST", "ajax.php", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");// without this line output will not change
xmlhttp.send("state="+st);
document.getElementById("districtdd").innerHTML=xmlhttp.responseText;
}
<select onchange=change_state(this.value)>’