[英]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">
</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.