php - 使用 ajax 函数根据下拉列表更改 select 语句的表?

标签 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>";


?>

目前,我针对“course”选择选项的值为 1200,这是用户的客户端 ID,仅用于测试以确保一切正常。确实如此。

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

这可能吗?

如果是这样,我怎样才能使 mbrid 动态化?我可以将 session 变量传递到函数中吗?

一如既往,感谢您的帮助!

最佳答案

您可以在 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'] 获取目标页面中的值。

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

关于php - 使用 ajax 函数根据下拉列表更改 select 语句的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791235/

相关文章:

html - 悬停一个元素以更改另一个元素的属性

javascript - 默认情况下突出显示的选项卡

php - 设置 php session (session_set_save_handler)

mysql - 删除指定了外键的表

mysql - 我如何在 MySQL 中处理这样的查询,也许是 Group_Concat?

php - 将 html 保存在数据库中而不进行清理然后像 stackoverflow 一样在代码标记中显示它是否安全?

php - 在从 mysql 债务和信用表创建简单分类帐方面需要帮助吗?

php - 如何在codeigniter中使用mpdf?

php - 从具有多个对象的表单中保存数据

html - "selected"标签的 "option"属性中可以出现什么值?