2

以下のようなphpとjqueryコードがあります

<script>
$( document ).ready(function() {
  var data =[];
    $("#submit").on("click",function(){
        $.ajax({
                type:"POST",
                url:"map.php",
                success: function (html) {
                    $('#message').html(html);
                }
        });
    });
});
</script> 

PHP

<?php
define ( 'DB_HOST', 'localhost' );
define ( 'DB_USER', 'root' );
define ( 'DB_PASS', '' );
define ( 'DB_NAME', 'test' );
  $con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
  $query = "SELECT x,y FROM app";
  $results = $con->query($query);
  $return = array();
  if($results) {
    while($row = $results->fetch_assoc()) {
      $return[] = array((float)$row['x'],(float)$row['y']);
    }
  }
   echo json_encode($return);
  $con->close();
 ?>

このようなデータベースから値を返します$('#message').html(html);

[ [ 20 , 20 ],[ 20 , 30 ],[ 50 , 35 ],[ 40 , 20 ] ]

この結果を解析/エクスポート/プッシュdata =[];して、そこに配列の配列を持たせて、最終的に結果がこのようになるようにするにはどうすればよいですか?

var data  =[ [ 20 , 20 ],[ 20 , 30 ],[ 50 , 35 ],[ 40 , 20 ] ];
4

5 に答える 5

1

含むdataType: 'json'

$.ajax({
     type:"POST",
     url:"map.php",
     dataType: 'json',
     success: function (html) {
         $('#message').html(html);
         data = html;
         console.log(data);
     }
});
于 2014-05-28T06:47:12.123 に答える
0

json_encodeJavascript での PHP 関数の反対は次のJSON.parse(json)とおりです。

var myArr = JSON.parse("[ [ 20 , 20 ],[ 20 , 30 ],[ 50 , 35 ],[ 40 , 20 ] ]");
于 2014-05-28T06:47:57.867 に答える
0

echo json_encode($return); の代わりに echo json_encode(array('data'=>$return)); を使用できます。連想配列形式で応答を取得します。

于 2014-05-28T06:58:15.603 に答える
0

シンプルに

data  = $.parseJSON('[ [ 20 , 20 ],[ 20 , 30 ],[ 50 , 35 ],[ 40 , 20 ] ]');

また

データ = $.parseJSON(html);

注:配列をデータ変数に割り当てるときにvarを削除すると、配列がグローバルデータ変数に割り当てられます。

したがって、最終的なスクリプトは次のようになります。

<script>
$( document ).ready(function() {
  var data =[];
    $("#submit").on("click",function(){
        $.ajax({
                type:"POST",
                dataType:'json',
                url:"map.php",
                success: function (html) {
                    $('#message').html(html);
                    data = $.parseJSON(html);
                }
        });
    });
});
</script>
于 2014-05-28T06:48:48.790 に答える