我有一个php文件“Criteria”来显示一堆html多选下拉菜单,可用于为查询创建条件。
我有一个php文件“Results”,它根据各种下拉列表中的选定选项构建一个SQL语句,执行查询,然后显示该查询的结果。
我想跳过重新加载&回显每个选择下拉列表的所有html,因为它们每个都包含数百个选项。 Ajax是我的解决方案。
对于每个下拉列表,onchange事件都会调用我的javascript,它会对我的“Results”页面执行Ajax调用。然后,此“结果”页面将使用$ _POST ['htmlSelectDropdownID']获取每个选择下拉列表的值。
现在我已经实现了Ajax,问题是选择下拉列表中的选定值没有传到我的Results文件中......我只能假设这是因为HTML从未重新加载...
是否有人建议如何解决此问题?
谢谢,
------------------------ code ---------------------- ----
我的Javascript / Ajax
function AjaxPostback(){
/*if (str=="")
{
document.getElementById("divTest").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("divResults").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","Results.php", true); //?q="+str,true);
xmlhttp.send();}
我页面上的下拉菜单中只有一个
Group By <select id="selGroupBy" name="selGroupBy" onchange="AjaxPostback()">
<option value='Department' <?php if ($_POST['selGroupBy'] == 'Department') echo 'selected="selected"'; ?>>Department</option>
<option value='Store' <?php if ($_POST['selGroupBy'] == 'Store') echo 'selected="selected"'; ?>>Store</option>
<option value='Date' <?php if ($_POST['selGroupBy'] == 'Date') echo 'selected="selected"'; ?>>Date</option>
<option value='Size' <?php if ($_POST['selGroupBy'] == 'Size') echo 'selected="selected"'; ?>>Size</option>
</select>
- 构建Criteria(下拉html)的html和使用javascript填充innerHTML的div(divResults)
<div>
<?php include ("Criteria.php"); ?>
<div class="divResults" id="divResults">
</div>
</div>
调用时,我的Results.php文件只是检查文档中的内容,例如.. if(isset($ _ POST ['selDepartment'])&amp;&amp;($ _POST ['selDepartment'] ==“320 Socks”){ $ sqlSelect。= $ _POST ['selDepartment']; }
我也尝试使用$ _GET而不是$ _POST来检索值,结果相同.. = \
答案 0 :(得分:0)
您似乎永远不会向结果页面发送任何参数。尝试添加:
xmlhttp.open("GET","Results.php?selGroupBy="+document.getElementById("selGroupBy").value, true); //?q="+str,true);
使用以下命令在您的php页面上获取:
$val = $_GET['selGroupBy'];
好吧,我可能不明白你的概率。