根据带有ajax函数的下拉列表更改select语句的表?

时间:2013-05-28 11:45:35

标签: php html mysql ajax

我正在尝试在我的网站上设置一个表格,该表格根据下拉菜单中的用户选择进行填充。下拉菜单应该组成将执行SELECT语句的变量。 为此,我有一个HTML下拉菜单和一个AJAX函数。这个功能......

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

这是HTML

<form action="">
<select name="users" onchange="showUser(this.value)">
<option value="">Please choose</option>
<option value="1200">Courses</option>
<option value="">TEST</option>
<option value="">TEST</option>
<option value="">TEST</option>
</select>
</form>     
<br>
<div id="loadhere"><b>Details will be listed here after selection.</b></div>

然后调用php脚本     

$q=$_GET["q"];


$sql="SELECT * FROM clntcoursetbl WHERE mbrid = '".$q."'";

$result = mysql_query($sql);

echo "<table id='box-table-b'>
<tr>
<th>Course</th>
<th>Start Date</th>
<th>Finish Date</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['course'] . "</td>";
echo "<td>" . $row['startdate'] . "</td>";
echo "<td>" . $row['finishdate'] . "</td>";
echo "</tr>";
}
echo "</table>";


?>

目前,我对“课程”的选择选项的值为1200,这是用户的客户端ID,仅用于测试以确保一切正常。它是做什么的。

现在,我想更改它,以便将select中的值放入SELECT语句中以选择要搜索的表。 类似于“SELECT * FROM 选择值 WHERE mbrid ='”。$ q。“'”;

这可能吗?

如果是这样,我怎么能让混合动力?我可以将会话变量传递给函数吗??

一如既往,谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

你可以在showUser()函数中进行ajax调用,这可以是这样的。

var url = "url of the file you want to get data from"; 
var e = document.getElementById("#<Your Select Items ID>"); 
var data = 'q='+e.options[e.selectedIndex].value;
         $.ajax({
             type: "post",
             url: url,
             data: data,
             success: function(msg) {
             }
         });

然后您可以使用$ _POST ['q']来获取目标网页中的值。

还尝试将所有回显数据附加到变量,并在循环执行完成时执行回显。