0

私はjquery、ajaxの初心者です....phpファイルからの値は、j​​son_encodeを介して返されます。私の問題はここにあります。これらのデータにアクセスする方法がわかりません。

ここでコード...... jsコード....

<script>
 $(document).ready(function(){

     setInterval(ajaxcall, 1000);
 });
 var devid=1;
 function ajaxcall(){
    devid++;
    //alert(devid);
    $.ajax(
    {
     url: 'gettime.php',
     data:{devid:devid},

     success: function(data) 
     {

         //data = data.split(',');
         data1 = data.a;
         data2 = data.b;        

         var latlng = new google.maps.LatLng(data1, data2);
         //alert(data.lat);

         var options = {
            zoom: 14,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
         };
         var map = new google.maps.Map(document.getElementById('map_canvas'), options);

    }

    });
}

</script>

php ファイル (gettime.php)

<?php 
    $vvid = $_REQUEST['devid'];
    echo $vvid;
    $sql= mysql_query("select * from maploca where id='$vvid'");
    $sqlqry = mysql_fetch_array($sql);
    $var1 = $sqlqry['latitude'];
    $var2 = $sqlqry['latitude'];
    echo json_encode(array("a" => $var1, "b" => $var2));
?>
4

4 に答える 4

1

私が見る限り、あなたのコードは問題なく動作するはずです。で問題が発生する可能性があることを除いてgettime.php。そこにコードが表示mysql_connectされないため、クエリの実行に失敗する可能性があります。

そこに別の考えられる問題:

 $var1 = $sqlqry['latitude'];
 $var2 = $sqlqry['latitude'];
 echo json_encode(array("a" => $var1, "b" => $var2));

次のようなものになるはずだと思うと、緯度を2回取得しています。

$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['longitude'];
echo json_encode(array("a" => $var1, "b" => $var2));

とにかく、PHP エラー ログを確認してください。おそらく、そこに何らかのエラーが見つかるでしょう (実際にmysql_connectコードが欠落している場合は、確実に見つかります) 。

また、開発者ツール/firebug の使用方法を学びます。JS のデバッグに大いに役立ちます。

編集

スクリプトは json コードのみを返さなければならないことに注意してください。応答にガベージ (html コードなど) がある場合、ブラウザーは応答を解析できずdata、成功関数でエラーまたは単純な文字列 (オブジェクトではなく) が返されます。

于 2013-05-08T07:05:55.410 に答える
0

デフォルトでは、ajax 呼び出しに dataType プロパティがありません。データは、php スクリプトによって text/xml 形式で返されます。デフォルトの動作を変更するには、json である正しい形式を指定する必要があるため、ajax 呼び出しは次のようになります。

アヤックス

$.ajax( {

url: 'gettime.php',

 data:{devid:devid},

 dataType: "json",

 type:post

}))

php

$vvid = $_REQUEST['devid'];
echo $vvid;
$sql= mysql_query("select * from maploca where id='$vvid'");
$sqlqry = mysql_fetch_array($sql);
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['latitude'];
echo json_encode(array("a" => $var1, "b" => $var2));
于 2013-05-08T06:52:17.790 に答える