Php 让AJAX与whitepsace一起工作有困难

Php 让AJAX与whitepsace一起工作有困难,php,mysql,ajax,Php,Mysql,Ajax,我有一个名为orgs的MYSQL表,其中包含名称、城市、邮政编码和州。我想要一个AJAX下拉列表,当我从下拉列表中选择城市名称时,它会在我页面的另一个字段中填充城市名称。我目前有一个下拉列表,用于根据我所在的州更新城市,但当我尝试根据城市调用组织名称时,我的代码失败。这是我目前拥有的 使用AJAX获取城市名称: function list(str) { if (str=="") { document.getElementById("list").innerHTML=""; retur

我有一个名为orgs的MYSQL表,其中包含名称、城市、邮政编码和州。我想要一个AJAX下拉列表,当我从下拉列表中选择城市名称时,它会在我页面的另一个字段中填充城市名称。我目前有一个下拉列表,用于根据我所在的州更新城市,但当我尝试根据城市调用组织名称时,我的代码失败。这是我目前拥有的

使用AJAX获取城市名称:

function list(str)
{
if (str=="")
  {
  document.getElementById("list").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  var xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("list").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","../php/list_org.php?q="+str,true);
xmlhttp.send();
}
function get_cities(str)
{
if (str=="")
  {
  document.getElementById("get_cities").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  var xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("get_cities").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","../php/get_cities.php?q="+str,true);
xmlhttp.send();
}
AJAX可根据城市获取组织名称:

function list(str)
{
if (str=="")
  {
  document.getElementById("list").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  var xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("list").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","../php/list_org.php?q="+str,true);
xmlhttp.send();
}
function get_cities(str)
{
if (str=="")
  {
  document.getElementById("get_cities").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  var xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("get_cities").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","../php/get_cities.php?q="+str,true);
xmlhttp.send();
}
list_org.php:

<?php include_once '../php/db_connect.php'; ?>
<?php
$q = strval($_GET['q']);


$sql2="SELECT DISTINCT city FROM orgs WHERE state= '".$q."'";

$result2=mysqli_query($connection,$sql2);

if(!$result2){
      die("Database query failed. " . mysqli_error($connection));
    }

    echo "<form>";
    echo '<select name="get_cities" onchange="get_cities(this.value)">';
    echo '<option value="">Select a city:</option>';
while($row2= mysqli_fetch_array($result2)){
    echo '<option value="' . $row2['city']. '">'. $row2['city'].'</option>';
}
    echo "</form>";
mysqli_close($connection);
?>

获取_cities.php:

<?php include_once '../php/db_connect.php'; ?>
<?php
$q = strval($_GET['q']);
$q='CA';



$sql2="SELECT * FROM orgs WHERE state = '".$q."'";

$result=mysqli_query($connection,$sql2);

if(!$result){
      die("Database query failed. " . mysqli_error($connection));
    }
echo $q;
$link_address = '#';
echo '<div id="get_cities">';
while($row = mysqli_fetch_array($result))
  {
  echo "<ul>";
  echo "<li><a href='".$link_address."' name='" . $row['id'] ."'>" . $row['name'] . "</a></li>";
  echo "</ul>";
  }
 echo '</div>'




mysqli_close($connection);
?>

我想问题可能是我路过的城市中有空格(比如“洛杉矶”),但我试过单名城市,比如“布法罗”,当我改变选择时也没有任何效果。任何帮助都将不胜感激。

您在list_org.php中缺少一个
。试着先修复那个,然后转义你的字符串

替换

xmlhttp.open("GET","../php/get_cities.php?q="+str,true);


可爱的脆弱。享受你的网站pwn3d。是的,是的,我知道。我打算在它工作后修复它。将div的名称从“get_cities”改为“get_cities_div”。将对象命名为与函数相同会导致Javascript中出现问题。