簡體   English   中英

如何通過多個請求同時將數據從php傳遞到javascript

[英]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中獲取信息。 ...

所以基本上, 我需要做的是:

  • 在Javascript中獲取我在php中擁有的變量;
  • 使用這些參數向Google Maps添加標記;

考慮到:

  • 搜索結果可以是數百個項目(一個表中有數百行)。
  • 由於結果數量眾多,只有部分結果被加載到html頁面,但是在地圖上應顯示與搜索相對應的所有標記;
  • 多個用戶可以同時訪問該網站;

提前謝謝了!

您可以在請求搜索數據時從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM