修改:
大家好,感谢您的回复。我一直在努力尝试将代码硬塞到我的页面中,但我仍然没有运气。在摆弄时,我不明白为什么像下面的代码这样的东西不起作用 - 我无法让它工作,请注意(!)。如果不可能,我希望有人可以否决这个想法,以免我浪费时间尝试这样做:
<form name='Names' role='form' action='#' method='get' onchange='this.form.submit()'>
<select name="FirstName">
<option value="1">FirstName#1</option>
</select>
<select name="LastName">
<option value="1">LastName#1</option>
</select>
</form>
...然后我可以在 $_GET['FirstName']
和 $_GET['LastName']
中选取这些选择并将它们传递到我的 mysqli_query( )来生成表格?
为了防止我的困惑蔓延,我首先想描述一下我正在尝试做的事情...我想要一个网页,其中有一个表格,其中包含一组我可以过滤的下拉列表 - 类似于 Excel 过滤器。如果您知道比我下面尝试的更好的方法 - 请启发我!!
现在,描述一下我迄今为止取得的最佳进展:
我有以下脚本(直接从 W3schools 复制过来:
<script>
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","entry_table.php?q="+str,true);
xmlhttp.send();
}
</script>
上面的脚本是从下面的下拉列表中调用的,该下拉列表使用来自 SQL 查询的 PHP while 循环进行填充:
<form>
<select name="Name" onchange="showUser(this.value)">
<option value="1">User#1</option>
</select>
</form>
使用以下命令生成 SQL 查询后,$q 值将传递到 PHP 页面以显示表:
WHERE UserID="$q"
这可行,但我担心这似乎是一种冗长的做法 - 特别是如果我尝试扩展查询以包含 6-7 个其他下拉过滤器。
提前致谢, 本
最佳答案
您可以使用回调函数。
function getData(url, callback)
{
if (window.XMLHttpRequest)
{
//IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{ //IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
callback(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
然后像这样进行 ajax 调用:
getData("entry_table.php?q="+str, function(data)
{
document.getElementById("txtHint").innerHTML=data;
});
外部函数
function doStuff(value) {
getData("entry_table.php?q="+value, function(data)
{
document.getElementById("txtHint").innerHTML=data;
});
}
然后选择将是
<select onchange="doStuff(this.value)">
关于php - 闻起来像 AJAX 但我不确定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26711788/