Javascript Ajax成功返回已注释的Html标记

Javascript Ajax成功返回已注释的Html标记,javascript,php,mysql,ajax,select,Javascript,Php,Mysql,Ajax,Select,我正在尝试设置一个选择框,根据之前选择的州显示城市 基本上,我使用ajax运行php.file来填充我的。在php文件中,我成功地通过了预先选择的状态来查询数据库。然而,现在,为了填充,我正在使用ajaxsuccess调用php文件,然而,每当我尝试传递包含php代码的变量时,它就会显示为带有注释的变量--和-- //hmtl 酸百里香酮 //js代码 函数fillSelectCity(){ var getState=document.getElementById('selectState')

我正在尝试设置一个选择框,根据之前选择的州显示城市

基本上,我使用ajax运行php.file来填充我的
。在php文件中,我成功地通过了预先选择的状态来查询数据库。然而,现在,为了填充
,我正在使用ajaxsuccess调用php文件,然而,每当我尝试传递包含php代码的变量时,它就会显示为带有
注释的变量--
--

//hmtl
酸百里香酮
//js代码
函数fillSelectCity(){
var getState=document.getElementById('selectState');
var stateID=getState.options[getState.selectedIndex].value;
$.ajax({
类型:“POST”,
url:“fillcity.php”,
数据:{stateID:stateID},
成功:函数(){
var phpfile=“'fillcity.php'”
var tag=“”;
$('#选择城市').html(标记);
///这里的输出是“”
}    
})
}
//php文件

我希望通过循环php文件中的表
city
来填充我的select选项。标签
用于填充状态选择。也许有一种更直接的方法来进行相应的填充,但由于我对编程还不熟悉,我正试图自己解决问题。但是,请随意推荐其他方法,因为我不确定我计划做的是否可行。谢谢

您不需要
包含'fillcity.php
。AJAX调用运行该脚本,响应就是输出。它将位于success函数的参数中

function fillSelectCity () {

    var getState = $("#selectState").val();

    $.ajax ({
        type: "POST", 
        url: "fillcity.php",
        data: { stateID : stateID },
        success:  function (tag){
            $('#select-city').html(tag);
        }    
    });

 }

你可以试试这个。您可以稍后对其进行修改以进行改进。

read.php

<?php
    //include header
    header('Content-Type: application/json');
$conn= mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$type = $_GET["type"];
if($type == "GetState"){
    //SAMPLE QUERY
    $sql = "SELECT StateID,StateName from State";
    $data = array();
    $results = $db -> query($sql);
    while($row = mysqli_fetch_assoc($results)){
        $data[] = $row;
    }
    echo json_encode($data);
}
if($type == "GetCity"){
    $StateID= $_POST["StateID"];
    //SAMPLE QUERY
    //LET'S ASSUME THAT YOU HAVE FOREIGN KEY
    $sql = "SELECT CityID,CityName from City where StateID = '".$StateID."'";
    $data = array();
    $results = $db -> query($sql);
    while($row = mysqli_fetch_assoc($results)){
        $data[] = $row;
    }
    echo json_encode($data);
}
?>

不能在PHP代码中使用JavaScript变量。PHP脚本完成后,JavaScript将在客户端上运行。如果
fillSelectCity
函数不在
.PHP
文件中,
这就是为什么您会收到注释,您将放入
感谢您的输入!事实上,我只是读了一下,我试了一下,它解决了一个小问题。再次感谢!
//php file

<?php 

$conn = mysqli_connect("host", "user", "pass", "db");

if(isset($_POST['stateID']))
{
    $stateID = $_POST['stateID'];
}

$query = "SELECT * FROM states WHERE stateID = '$stateID'"; 
$result_one = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result_one); //my table has a specific ID for each state, so I am fetching the acronoym of the state according to the id;
$stateUf = $row['uf']; // passing the acronym to the $stateUf
mysqli_free_result($result_one);

$queryCity = "SELECT * FROM city WHERE Uf = '$stateUf'"; //query all cities with the acronym

if ($result = mysqli_query($conn, $queryCity)){
    while ($row = mysqli_fetch_assoc($result)){
        $id = $row['cityID'];
        $name =  $row['cityName'];
        $name = utf8_encode($name);
        echo <<< EOT
        "<option value="$id">$name</option>"
EOT;
    }

    mysqli_free_result($result);}

    else {echo "<option>Error</option>";}


?> 
function fillSelectCity () {

    var getState = $("#selectState").val();

    $.ajax ({
        type: "POST", 
        url: "fillcity.php",
        data: { stateID : stateID },
        success:  function (tag){
            $('#select-city').html(tag);
        }    
    });

 }
<?php
    //include header
    header('Content-Type: application/json');
$conn= mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$type = $_GET["type"];
if($type == "GetState"){
    //SAMPLE QUERY
    $sql = "SELECT StateID,StateName from State";
    $data = array();
    $results = $db -> query($sql);
    while($row = mysqli_fetch_assoc($results)){
        $data[] = $row;
    }
    echo json_encode($data);
}
if($type == "GetCity"){
    $StateID= $_POST["StateID"];
    //SAMPLE QUERY
    //LET'S ASSUME THAT YOU HAVE FOREIGN KEY
    $sql = "SELECT CityID,CityName from City where StateID = '".$StateID."'";
    $data = array();
    $results = $db -> query($sql);
    while($row = mysqli_fetch_assoc($results)){
        $data[] = $row;
    }
    echo json_encode($data);
}
?>
<select id="state"></select>
<select id="city"></select>

<!--PLEASE INCLUDE JQUERY RIGHT HERE E.G. <script src='jquery.min.js'></script>--> 
<!--DOWNLOAD JQUERY HERE https://jquery.com/-->
<script>
    LoadState();
    function LoadState(){
        $.ajax({
            url:"read.php?type=GetState",
            type:"GET",
            success:function(data){
                var options = "<option selected disabled value="">Select 
State</option>";
            for(var i in data){
                options += "<option value='"+data[i].StateID+"'>" + data[i].StateName+ "</option>";
            }
            $("#state").html(options);
        }
    });
}
function LoadCity(StateID){
    $.ajax({
        url:"read.php?type=GetCity",
        type:"POST",
        data:{
            StateID: StateID
        },
        success:function(data){
            var options = "<option selected disabled value="">Select City</option>";
            for(var i in data){
                options += "<option value='"+data[i].CityID+"'>" + data[i].CityName+ "</option>";
            }
            $("#city").html(options);
        }
    });
}
$("#city").change(function(){
    LoadCity(this.value);
});