2011-01-18 41 views
0

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

調用時,我Results.php文件簡單地檢查記錄喜歡的事情.. 如果(isset($ _ POST [ 'selDepartment'])& &($ _POST ['selDepartment'] ==「320 Socks」){ $ sqlSelect。= $ _POST ['selDepartment']; }

我一直在使用$ _GET代替$ _POST檢索值,同樣的結果也試過.. = \

+0

如果您爲調用發佈了javascript,它會更容易幫助 – wajiw 2011-01-18 22:53:59

+0

您正在發送帶POST的ajax請求而不是GET,對嗎? – 2011-01-18 22:54:36

回答

0

看來,你永遠不發送任何參數去搜索結果頁。嘗試添加此:

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

,把事情安排你的PHP頁面上:

$val = $_GET['selGroupBy']; 

嗯,我可能不明白您的概率。

相關問題