php:无法在ajax.php文件中获取$state的值。甚至不使用isset()。请让我知道什么是解决方案 选择状态 挑选

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>

使用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>
        <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)>’