4

フィールドに位置の緯度と経度の座標が含まれるデータベース テーブルがあります。データベースからの情報を使用して、Google マップ ビューのマーカーを作成したいと考えています。

クエリ関数を次のように実装しました

function getCords(){
  $link = connectDB();
  $query = "SELECT * FROM tour";
  $results = mysqli_query($link, $query);

  $jsonArray = array();
  while ($row = mysqli_fetch_assoc($results)){
    $jsonArray[] = array('fileName' => $row['FileName'], 'lat' => $row['Lat'], 'lon' => $row['Lon']);

  }

return json_encode($jsonArray);
}

この関数を PHP ページから呼び出すと、通常の JSON 形式が返されます。

私の問題は、ajax クエリの実行です。上記のクエリ関数は、ログイン、ログアウト、登録などを制御する 6 つほどのユーティリティ関数を含む php スクリプト ファイルにあります。jquery経由でデータベースにクエリを実行するには、試しました

var request = $.ajax({
  type:"GET",
  url: "includes/phpscripts.php?action=cords",
  type: "json"
});

var response = request.responseText;

私の問題は、応答が常に空であることです。これは URL の構成によるものですか、それとも他の理由によるものですか?

4

3 に答える 3

7
   $.ajax({
      type:"GET",
      url: "includes/phpscripts.php?action=cords",
      dataType: 'json', // necessary, because you're sending json from server
      success: function(response) {  // response will catch within success function
        console.log(response);
      }
    });

また

   var request = $.ajax({
      type:"GET",
      url: "includes/phpscripts.php?action=cords",
      dataType: 'json', // necessary, because you're sending json from server
    }).done(function(response) {
       console.log(response);
    });

ノート

の代わりにreturn json_encode($jsonArray);echo json_encode($jsonArray);

于 2012-06-04T19:52:17.380 に答える
0

そのコード行が実行されたときにサーバーから応答が返されないため、応答は空白です。ajax コールバック内に responseText を設定してみてください。下記参照、

var response = '';
var request = $.ajax({
  type:"GET",
  url: "includes/phpscripts.php?action=cords",
  type: "json"
}).done (function (data) {
   console.log(data); //json object as jquery converts it for you
   console.log(request.responseText); //string text as returned the server.
   response = request.responseText; 
   //^-- response is a string text as returned the server.
});

デモ: http://jsfiddle.net/hUY6v/

于 2012-06-04T20:28:45.077 に答える
-1

jQuery.ajaxを参照してください。正しい形式を使用していないため、応答が空白です。

成功ハンドラーは、サーバー側からの応答を返します。したがって、次のように使用します。

 $.ajax({
      type:"GET",
      url: "includes/phpscripts.php?action=cords",
      type: "json"
      success : function(response){
               console.log(response);
        }
   });
于 2012-06-04T19:56:08.750 に答える