[英]How to pass data from php to javascript with multiple requests at the same time
我有一個帶有搜索引擎的網站,它通過$ .ajax加載搜索結果,如下所示:
$.ajax({
type: "GET",
url: "search_engine.php",
data: 'value=' + search_text,
cache: false,
success: function(results){
$('#search_results').html(results);
},
error: function(){alert("An error occured ")},
})
php將使用從數據庫獲取的變量回顯html表,例如:
<td class='info'>
<div class='infoPin'>
<div class='name'><b><span>$print_name</span></b></div>
<div class='description'>
$print_desc
</div>
</div>
</td>
這工作正常,但現在我想在地圖上添加與搜索結果相對應的標記。 盡管我從未使用過XML,但我知道可以將XML文件與所有結果一起保存,但是我的問題是,具有多個搜索的多個用戶可以同時訪問該站點,所以這可能是一個問題吧?
同時,我有很多結果,以至於我每次都只加載其中的一部分並使用多個頁面(就像google),從而無法將數據回顯到某處的頁面中,並且無法使用JavaScript從DOM中獲取信息。 ...
所以基本上, 我需要做的是:
考慮到:
提前謝謝了!
您可以在請求搜索數據時從PHP發送回JSON數據。 假設您在PHP中有一個包含所有搜索結果的數組。 然后,您可以將其轉換為JSON字符串,因此jQuery ajax成功函數可以將其轉換為對象並在其上循環。
在PHP中:
$results = array(
0 => array('name' => 'Res1', 'desc' => 'Desc1', 'longitude' => 52.366, 'latitude' => 4.91),
1 => array('name' => 'Res2', 'desc' => 'Desc2', 'longitude' => 52.511, 'latitude' => 4.90),
2 => array('name' => 'Res3', 'desc' => 'Desc3', 'longitude' => 52.753, 'latitude' => 4.92),
);
$json = json_encode($results);
print($json);
在JS中:
$.ajax({
type: "GET",
url: "search_engine.php",
data: 'value=' + search_text,
dataType: 'json',
cache: false,
success: function(results) {
var data = $.parseJSON(results);
if (typeof data === 'object') {
$('#search_results').empty();
$.each(data, function(k, v) {
console.log(v);
/* Use the v variable (which contains a result as an object) to fill $('#search_results') with data and reinit maps data with long/lat or address data */
});
}
},
error: function() { alert("An error occured "); },
});
要填充您的#search_results
元素,請看一下jQuery的.append
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.