Ajax代码可在localhost上运行,但不能在服务器上运行

时间:2018-06-21 05:11:28

标签: php ajax

我正在处理2个相关的下拉菜单(国家/地区)。在先前选择的基础上,将使用ajax打开新的下拉选项。我的代码在localhost上运行良好,但是在服务器上,它不获取任何数据(ajax在服务器上不起作用)。我在这里使用2个文件(Reg.php,getState.php)代码,请帮助。

Reg.php

<?php
require("../conn.php");
$query ="SELECT * FROM country";
$results=mysqli_query($con,$query);
?>
<html>
<head>
<script>
function getState(val) {
$.ajax({
type: "POST",
url: "getState.php",
data:'country_id='+val,
success: function(data){
    $("#state-list").html(data);
    getCity();
}
});
}
</script>
</head>
<body>
<select name="country" id="country-list" onChange="getState(this.value);">
<option value="">Select Country</option>
<?php 
foreach($results as $country) {
?>
<option value="<?php echo $country["id"]; ?>"><?php echo 
$country["country_name"]; ?></option>
<?php
}
?>
</select>
<select name="state" id="state-list"  class="form-control" style="width:100%;" onChange="getCity(this.value);">
<option value="">Select State</option>
</select>
</body>
</html>

getState.php

<?php
require("../conn.php");
if (! empty($_POST["country_id"])) {
$query = "SELECT * FROM states WHERE countryID = '" . $_POST["country_id"] . "'";
$results=mysqli_query($con,$query);
?>
<option value disabled selected>Select State</option>
<?php
foreach ($results as $state) {
    ?>
<option value="<?php echo $state["id"]; ?>"><?php echo $state["name"]; ?> 
</option>
<?php
  }
 }
?>

2 个答案:

答案 0 :(得分:0)

请尝试使用此代码从ajax获取数据。

function getState(val) {
        $.ajax({
          method: "POST",
          url: "getState.php",
          data: { country_id: val }
        })
          .done(function( data ) {
            $("#state-list").html(data);
          });

}

答案 1 :(得分:0)

在上面的代码中,foreach循环在localhost上运行良好,但在服务器上却不行,我用while循环替换了foreach循环并获得了国家和城市名称。谢谢大家