2011-11-26 42 views
0

我有一個頁面search.php用戶搜索和搜索結果顯示在search_records.phpPHP:排序阿賈克斯數據

search_records.php無論是用戶可以搜索新的或能對結果進行排序,使用下拉(見下圖)

Search Record page

當前進程:當用戶選擇一個值從下拉菜單中,我們向服務器發送ajax請求,並使用額外的ORDER BY子句獲取相同的數據,然後顯示數據。

變化過程:我們可以使用一些PHP陣列功能做同樣的,當用戶選擇從下拉的任意值下降那麼,我們在當前的URL追加?sort=whatever然後根據$_GET['sort'],我們會重新安排陣列的搜索結果。

但我無法成功,因爲我嘗試了以下2種方式。

1)隨着HTML/PHP

<select id="sortMyData"> 
     <option value="asc"><a href="searchrecords.php?sort=asc">Low to high price</option> 
     <option value="asc"><a href="searchrecords.php?sort=desc">High ti low price</option> 
     <option value="asc"><a href="searchrecords.php?sort=age">Younger to older</option> 
</select> 

,但我很驚訝地知道,<a>不內<option>工作或我在這裏做什麼了嗎?

2)使用jQuery

<select id="sortMyData"> 
     <option value="asc">Price: Low to High</option> 
     <option value="desc">Price: High to Low </option> 
     <option value="age">Younger to older</option> 
    </select> 

$('#sortMyData').change(function(e){ 
    var locAppend = $(this).find('option:selected').val(), 
    alert("Redirecting to: " + locSnip + locAppend); 
    window.location ='searchrecords.php?sort='+locAppend ; 
}); 

請幫助。

回答

0
<form method="POST"> 
<select id="sortMyData" name="sortMyData"> 
    <option value="asc">Low to high price</option> 
    <option value="desc">High ti low price</option> 
    <option value="age">Younger to older</option> 
</select> 
</form> 

<?php 
// form receiver 
    if (isset($_POST['sortMyData'])) 
    { 
     switch($_POST['sortMyData']) 
     { 
      case 'asc': header("Location : http://path/to/searchrecords.php?sort=asc"); 
         break; 
      case 'desc': header("Location : http://path/to/searchrecords.php?sort=desc"); 
         break; 
      case 'age': header("Location : http://path/to/searchrecords.php?sort=age"); 
         break; 

     } 
    } 
?> 
+0

通過此頁面再次加載,然後數據丟失 – diEcho