0

jQueryを介してajaxを使用して、データベースからJavaScriptコードにデータをインポートしたいのですが、json解析エラーが発生し、それが何から来たのか本当にわかりません。私たちを手伝ってくれますか ?

目標は地図上に建物を建設することであり、データベースから座標や形状パラメータなどのジオメトリ要素を取得します。

JS ファイルに次のように記述します。

 $.ajax({ 

  type: "GET",
  url: "ajax_processor.php",
  dataType : "html",

  error:function(msg, string){ 
     alert( "Error !: " + string );
  }

  success:function(returnData){ 

     var data = $.parseJSON(returnData); 

     for(var ID_geometryElement  in data) {
          addComp($data[bldg], 
                  $data[iZ], // zone where is the building
                  $data[iType], //type of the geometric element
                  $data[x0],
                  $data[y0],//coordinates top-left
                  $data[p], // geometric parameters
                  );
     }
   }
 });

});

PHPファイルで:

try {
   $bdd = new PDO('mysql:host=localhost;dbname=building_geometry','admin','password');
}

 $reponse = $bdd->query('SELECT * FROM ID_GEOMETRYELEMENT');
 $donnees = $reponse->fetch(); 

  header('Content-Type: application/json'); 
  echo json_encode($response); 

  ?>  
4

3 に答える 3

2

返されたクエリを処理するデータベース ステートメントを json_encode しようとしています。それはあなたがエンコードできるものではありません。コードは

echo json_encode($donnees);
                 ^^^^^^^^--- the actual data

JS などで最も基本的なデバッグを行った場合でもconsole.log(returnData)、スクリプトから有効なものが何も返されないことがわかります。

于 2013-07-30T14:21:50.830 に答える
0

$response は単なるカーソルです。フェッチしたデータを返す必要があります。

try {
   $bdd = new PDO('mysql:host=localhost;dbname=building_geometry','admin','password');
}

$reponse = $bdd->query('SELECT * FROM ID_GEOMETRYELEMENT');
$donnees = $reponse->fetch(); 

header('Content-Type: application/json'); 
echo json_encode($donnees); 

?>

于 2013-07-30T14:24:38.543 に答える
0
dataType : "html",

でなければなりません

dataType : "json",

応答に JSON が必要な場合

編集: http://api.jquery.com/jQuery.post/を参照してください。

データ・タイプ

タイプ: 文字列

サーバーから期待されるデータのタイプ。デフォルト: Intelligent Guess (xml、json、script、text、html)。

于 2013-07-30T14:20:35.033 に答える