我有一個php文件「標準」來顯示一堆可用於爲查詢創建條件的html多選下拉列表。PHP&Ajax - 我可以使用POST檢索表單值而無需重新加載
我有一個php文件「結果」,它根據從各個下拉列表中選擇的選項構建SQL語句,執行查詢,然後顯示該查詢的結果。
我想跳過必須重新加載& echo每個選擇下拉列表中的所有html,因爲它們每個都包含數百個選項。 Ajax是我的解決方案。
對於每個下拉列表,onchange事件調用我的javascript,它會對我的「Results」頁面執行Ajax調用。然後,此「結果」頁面將使用$ _POST ['htmlSelectDropdownID']獲取每個選擇下拉菜單的值。
現在我已經實現了Ajax的問題是選擇下拉列表中的選定值沒有出現在我的結果文件中......並且我只能假設這是因爲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();}
只是我的頁面的下拉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>
- 是建立標準的HTML (下拉html)和股利(divResults)誰的innerHTML充滿的JavaScript
<div>
<?php include ("Criteria.php"); ?>
<div class="divResults" id="divResults">
</div>
</div>
調用時,我Results.php文件簡單地檢查記錄喜歡的事情.. 如果(isset($ _ POST [ 'selDepartment'])& &($ _POST ['selDepartment'] ==「320 Socks」){ $ sqlSelect。= $ _POST ['selDepartment']; }
我一直在使用$ _GET代替$ _POST檢索值,同樣的結果也試過.. = \
如果您爲調用發佈了javascript,它會更容易幫助 – wajiw 2011-01-18 22:53:59
您正在發送帶POST的ajax請求而不是GET,對嗎? – 2011-01-18 22:54:36