Javascript Ajax成功返回已注释的Html标记
我正在尝试设置一个选择框,根据之前选择的州显示城市 基本上,我使用ajax运行php.file来填充我的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')
。在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);
});