2016-08-29 25 views
0

所以我有一個問題,我想能夠查詢用戶的當前位置的一些數據,但我仍然是新的JSON和試圖找出如何將數據發送回主頁面。使用當前經緯度/查詢數據庫並返回數據給用戶在PHP

以下是index.php頁面

<input type="hidden" id="latitude"> 
<input type="hidden" id="longitude"> 

這裏對緯度/經度值的隱藏的輸入被髮送的代碼的緯度/經度,以從

index.php頁面tables.php
$.getJSON(GEOCODING).done(function(location) { 
    $('#latitude').html(position.coords.latitude); 
    $('#longitude').html(position.coords.longitude); 
     $.ajax({ 
      url:'table.php', 
      method: 'POST', 
      dataType: 'json', 
      data:{ 
       lat: $('#latitude').val(), 
       lng: $('#longitude').val() 
      }, 
      success: function(data){ 
       console.log(); 
      } 
     });    
    }); 

我正在使用數據表來顯示index.php頁面上的數據。

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.css"> 

     <script> 
     $(document).ready(function(){ 
      var dataTable = $('#searchTable').dataTable(); 
      $("#searchbox").keyup(function() { 
       dataTable.fnFilter(this.value); 
      }); 
     }); 
     </script> 

     echo'<table id="searchTable" class="display"> 
       <thead> 
        <tr> 
         <th>Latitude</th> 
         <th>Longitude</th> 
        </tr> 
       </thead> 
       <tbody> 
       '; 

       (data to display from tables.php) 

     echo'</tbody> 
      </table> 
       '; 

然後我拉着從MySQL數據庫中的數據tables.php頁面上,現在,這是我必須弄清楚如何通過JSON和顯示數據發送回index.php頁面它在桌子上。

<?php 
require_once("connect.php"); 

$lat = isset($_POST['lat']) ? $_POST['lat'] : null; 
$lng = isset($_POST['lng']) ? $_POST['lng'] : null; 

if($lat && $lng){ 

    $locations = array();  

    $stmt = "SELECT * FROM location LIMIT 500"; //Query data from table 
    $stmt = $conn->prepare($stmt); 
    $stmt->execute(); 

    if($stmt->rowCount() > 0){ 
     $result = $stmt->fetchAll(); 

     foreach($result as $row){ 
      echo'<tr> 
       <td>';    
        $locations['Latitude'][] = $row; 
       echo'</td> 
       <td>'; 
        $locations['Longitude'][] = $row;  
       echo'</td> 
      </tr>';   
     } 
    } 
    return json_encode($locations); 
} 
?> 

我所希望做的是更新基於用戶的當前位置的數據庫,數據表時index.php頁面,或者用戶對用戶的土地也可以用搜索位置index.php頁面上提供的搜索欄。

預先感謝您的時間。

+0

使用.val()而不是html() –

+0

我不太清楚你在問什麼。 – Strawberry

+0

對不起,我會盡力澄清。我想完成的事情:當用戶訪問網站時,我想根據用戶位置顯示信息。因此,如果您來自加利福尼亞州,那麼表格會自動顯示該位置的所有信息。 – Stuckfornow

回答

0

您需要先從PHP文件中正確發送JSON,然後在AJAX響應中接收並解析以進一步使用它來顯示數據表。請參閱下面的代碼獲取幫助。

客戶端代碼:

$.getJSON(GEOCODING).done(function(location) { 
$('#latitude').html(position.coords.latitude); 
$('#longitude').html(position.coords.longitude); 
    $.ajax({ 
     url:'table.php', 
     method: 'POST', 
     dataType: 'json', 
     data:{ 
      lat: $('#latitude').val(), 
      lng: $('#longitude').val() 
     }, 
     success: function(data){ 
          // Here you need to parse the JSON data and put it in the data table rows by looping over it, see example code #E1        
      console.log(); 
     } 
    });    
}); 

PHP代碼:

<?php require_once("connect.php"); $lat = isset($_POST['lat']) ? $_POST['lat'] : null; $lng = isset($_POST['lng']) ? $_POST['lng'] : null; if($lat && $lng){ $locations = array(); $stmt = "SELECT * FROM location LIMIT 500"; //Query data from table $stmt = $conn->prepare($stmt);$stmt->execute(); if($stmt->rowCount() > 0){ $result = $stmt->fetchAll(); foreach($result as $row){ 
$result[] = ['col1'=>$row['col1'],'col2'=>$row['col2']]; // here you need to add as many columns as you want to show in the data table } } print json_encode($result);die; } ?> 

實施例的代碼: -

_#E1_ 
console.log(JSON.stringify(json.topics)); $.each(json.topics, function(idx, topic){ $("#nav").html('<a href="' + topic.link_src + '">' + topic.link_text + "</a>"); }); 

應用根據你的需要編碼,它會解決你的問題。假設你從數據庫查詢中獲得正確的數據。

希望它有幫助。

謝謝

相關問題