我正在尝试在我的网站上设置一个表格,该表格根据下拉菜单中的用户选择进行填充。下拉菜单应该组成将执行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。“'”;
这可能吗?
如果是这样,我怎么能让混合动力?我可以将会话变量传递给函数吗??
一如既往,谢谢你的帮助!
答案 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']来获取目标网页中的值。
还尝试将所有回显数据附加到变量,并在循环执行完成时执行回显。