1

いくつかの要素を組み合わせる方法に関するクエリがあります。

  1. ユーザーが mysql データベース テーブルから供給された名前のリストから選択できる、標準のドロップダウン選択ボックス。

  2. このボックスから選択すると、さらにデータを取得し、ページのさらに下の div の html テーブルに表示する ajax 関数。ドロップダウンから新しい名前を選択すると、テーブル データが更新されます

両方の要素を個別に動作させることはできますが、一緒にはできません。つまり、名前を html 選択ビットに個別に書き込むと、javascript/ajax は動作しますが、PHP を実装してドロップダウン リストを自動的に入力すると、他のデータは取り込まれません。全て。

いくつかのコード:

<head>
<?php
$con = mysql_connect("localhost","******","*******");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("*******", $con);

$sql="SELECT 
People1.person_id, 
People1.forename,
People1.surname,
People1.team_id
FROM People1
WHERE People1.team_id = 8";

$result=mysql_query($sql);
$options="";

while ($row=mysql_fetch_array($result)) { 

$id=$row["person_id"]; 
$thing=$row["forename"]; 
$options.="<OPTION VALUE=\"$id\">".$thing; 
}
?>

<script type="text/javascript">
function showUser(str)
  {
if (str=="")
  {
  document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
  }
  }
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>

<body>
<h1>Player Info</h1>
  <form>
  <SELECT NAME="player_id" "showUser(this.value)">
  <OPTION VALUE="">Choose</OPTION>
  <OPTION VALUE=<?=$options?>></OPTION>
  </SELECT> 
  </form>
<br />

<div id="txtHint"><b>Person info will be listed here.</b></div>
</body>
</html>

上記のすべてで、ドロップダウンを取得してほとんど問題ありませんが、名前を選択しても getuser.php ファイルから何ももたらされません。

4

1 に答える 1

2

ループwhileは次のようになります

while ($row=mysql_fetch_array($result)) { 

   $id=$row["person_id"]; 
   $thing=$row["forename"]; 
   $options.="<OPTION VALUE=\"$id\">".$thing."</OPTION>"; 
}

そして、あなたselectは次のようにブロックする必要があります

<SELECT NAME="player_id" onchange="showUser(this.value)">
  <OPTION VALUE="">Choose</OPTION>
  <?=$options?>
</SELECT>
于 2012-09-05T22:14:30.100 に答える