0

私は AJAX にまったく慣れていないので、助けていただければ幸いです。最初のドロップダウン メニューの AJAX onchange を使用して、PHP の関数を呼び出してデータベースをクエリし、一致する結果を 2 番目のドロップダウン メニューに入力しようとしています。私のデータベース接続スクリプトは正常に動作し、PHP クエリはデータベースから正しい情報を正確に引き出します。(投稿された変数 $cityinput を使用しない場合) PHP から AJAX への結果の取得に問題があり、2 番目のドロップダウン メニューに表示されます。

<?php
require'connect.php';

$cityinput=$_POST['cityinput'];

$query="SELECT mname FROM masseurs WHERE lounge='$cityinput'";
$result=mysql_query($query);
$num=mysql_numrows($result);

echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while ($i < $num) {
$mname=mysql_result($result,$i,"mname");

$mname="<option value=''>"mname"</option>";
$i++;}

if (!mysql_query($query))
  {die('Error: ' . mysql_error());}
mysql_close();
?> 





<html>
<head>
<script>
function getmasseurs()
{if (str=="")
  {document.getElementById("masseurinput").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("masseurinput").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","outputpopulate3.php?$mname="+str,true);
xmlhttp.send();
}
</script>


</head>
<body>
<form id="book" action="test.php" method="post">
  <p align="center"> 
    <select name="cityinput" id="cityinput" onchange="getmasseurs()">
      <option value="0" selected>City</option>
      <option value="1">Brisbane</option>
      <option value="2">Sydney</option>
      <option value="3">Melbourne</option>
      <option value="4">Adelaide</option>
      <option value="5">Perth</option>
    </select>
  </p>
  <p align="center"> 
    <select name="masseurinput" size="1" id="masseurinput"><div id="cityinput"></div> 
    </select>
  </p>
  <p align="center"> 
    <input type="submit">
</form></p>
</body>
</html>
4

1 に答える 1

0

これは間違っているようです: xmlhttp.open("GET","outputpopulate3.php?$mname="+str,true); outputpopulate3.php はどのファイルですか? 一番上?そのファイルのコードを投稿しない場合

なぜ変数を使用しているのですか?$mname. JavaScript 内で PHP コードを使用することはできません。

それが必要な場合は、次を使用する必要があります。

xmlhttp.open("GET","outputpopulate3.php?<? echo $mname; ?>="+str,true);

また、この行の「str」変数は設定されません。前の行で次のように設定できます。

str = document.getElementById('masseurinput').value;

しかし、おそらく固定変数名を使用する方が簡単でしょう..

于 2013-05-18T13:49:03.307 に答える