PHP& Ajax - 我可以使用POST来检索表单值而无需重新加载

时间:2011-01-18 22:50:53

标签: php javascript ajax post reload

我有一个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">
                &nbsp;
            </div>
        </div>

调用时,我的Results.php文件只是检查文档中的内容,例如.. if(isset($ _ POST ['selDepartment'])&amp;&amp;($ _POST ['selDepartment'] ==“320 Socks”){   $ sqlSelect。= $ _POST ['selDepartment']; }

我也尝试使用$ _GET而不是$ _POST来检索值,结果相同.. = \

1 个答案:

答案 0 :(得分:0)

您似乎永远不会向结果页面发送任何参数。尝试添加:

xmlhttp.open("GET","Results.php?selGroupBy="+document.getElementById("selGroupBy").value, true); //?q="+str,true);

使用以下命令在您的php页面上获取:

$val = $_GET['selGroupBy'];

好吧,我可能不明白你的概率。