2014-09-27 73 views
0

填充下拉菜單從PHP在單獨的div填充下拉菜單在單獨的div從PHP

我有一個函數搜索(),它使用AJAX並將多個值/通過變量到PHP如顏色,項目類型等作爲'ajax_data'。

$.ajax({ 
     url: 'phpmysql.php', 
     data: ajax_data, 
     success: function (data) { 
      $('#searchresults').html(data); 
     } 
    }).error(function() { 
     alert ('An error occurred'); 
    }); 

然後將搜索結果動態地填充到#searchresults中。

我有一個下拉菜單(#pagemenu),我想動態顯示當前搜索的頁碼,例如,如果在下拉菜單中有10頁結果顯示選項從1到10。

我已經在php中制定了「每頁的結果」和「總頁數」,並將它們設置爲$ per_page和$ totalpages。

//forloop listing number of pages in dropdown 
    for ($x=1; $x<=$totalpages; $x++) { 
    echo "<option value=".$x.">".$x."</option>"; 
    } 

所以,搜索結果被裝入#searchresults但我將如何去加載上面的for循環到#pagemenu下拉在一個單獨的DIV?我現在想的唯一辦法就是通過在主頁面中編寫下拉菜單和forloop的php,然後使用會話變量鏈接到php文件,但不確定這是否是一個好主意。任何建議表示讚賞!謝謝

+0

真的不清楚你的具體問題是什麼 – charlietfl 2014-09-27 12:57:34

回答

0

堅持你的具體問題,涉及在服務器中創建下拉菜單並將其返回到AJAX響應中,您似乎需要在響應中返回兩件事:數據和分頁選項。

一件事,你可以做的是返回包含兩件事JSON對象,所以你可以做這樣的事情:

success: function (data) { 
    $('#searchresults').html(data.result); 
    $('#pagemnu').html(data.options); 
} 

其中一個辦法可以從客戶端實現這一目標是增加在dataTypejson,所以data被解析到一個對象,它隨時可以使用這樣:

$.ajax({ 

    dataType: 'json', 

    url: 'phpmysql.php', 
    data: ajax_data, 
    success: function (data) { 
     $('#searchresults').html(data.result); 
     $('#pagemnu').html(data.options); 
    } 
}).error(function() { 
     alert ('An error occurred'); 
}); 

在服務器端,你將填充兩個結果一個數組並返回它作爲JSON:

$result = array(); 
... 
$result['searchResult'] = $theSearchResult; 

$optionsHtml = ''; 
for ($x=1; $x<=$totalpages; $x++) { 
    $optionsHtml .= "<option value=".$x.">".$x."</option>"; 
} 
$result['options'] = $optionsHtml; 

... 

echo json_encode($result); 
+0

太好了,我會試試這個方法。謝謝 – Simmo 2014-09-27 15:09:46

+0

早就說過了,這就像一個魅力,歡呼 – Simmo 2014-09-28 11:22:05

+0

太棒了!我很高興它的工作:) – 2014-09-28 13:05:36