繁体   English   中英

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

[英]PHP & Ajax - can i use POST to retrieve form value without reload

我有一个php文件“ Criteria”来显示一堆可用于创建查询条件的html multi select下拉列表。

我有一个php文件“结果”,该文件根据从各种下拉列表中选择的选项构建一个SQL语句,执行查询,然后显示该查询的结果。

我想跳过不必为每个选择下拉列表重新加载和回显所有html的操作,因为它们每个都包含数百个选项。 Ajax是我的解决方案。

对于每个下拉列表,一个onchange事件都会调用我的javascript,该javascript将对我的“结果”页面执行Ajax调用。 然后,该“结果”页面将使用$ _POST ['htmlSelectDropdownID']获取每个选择下拉列表的值。

现在,我已经实现了Ajax,问题是从select下拉列表中选择的值没有传递到我的Results文件中……我只能假定这是因为HTML从未重新加载过……

有人对如何解决此问题有建议吗?

谢谢,

------------------------代码------------------------- --

我的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();}

我页面上的下拉菜单中只有1个

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)和innerHTML的div(divResults)充满了javascript

<div>
            <?php include ("Criteria.php"); ?>

            <div class="divResults" id="divResults">
                &nbsp;
            </div>
        </div>

被调用时,我的Results.php文件仅检查文档是否存在以下内容。if(isset($ _ POST ['selDepartment'])&&($ _POST ['selDepartment'] ==“ 320袜子”){$ sqlSelect。= $ _POST ['selDepartment'];}

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

似乎您从未将任何参数发送到“结果”页面。 尝试添加以下内容:

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

并在您的php页面上使用:

$val = $_GET['selGroupBy'];

好吧,我也许不明白你的概率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM