我有一个关于如何组合几个元素的查询:
标准下拉选择框,用户可以从源自mysql数据库表的名称列表中进行选择。
从此框中选择一个ajax函数,该函数检索更多数据并显示在页面下方div中的html表格中。从下拉列表中选择新名称时 - 表数据刷新
我可以让两个元素单独工作但不能一起工作,即当我将名称单独写入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文件中带来任何东西。
答案 0 :(得分: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>