如何通过ajax将mysql结果作为jSON传递

我不知道如何通过ajax JSON将mysql查询的结果传递给html页面。 ajax2.php

$statement = $pdo - > prepare("SELECT * FROM posts WHERE subid IN (:key2) AND Poscode=:postcode2"); $statement - > execute(array(':key2' => $key2, ':postcode2' => $postcode)); // $row = $statement->fetchAll(PDO::FETCH_ASSOC); while ($row = $statement - > fetch()) { echo $row['Name']; //How to show this in the html page? echo $row['PostUUID']; //How to show this in the html page? $row2[] = $row; } echo json_encode($row2); 

如何将以上查询结果通过下面的ajax显示在html页面中?

我的阿贾克斯

 $("form").on("submit", function () { var data = { "action": "test" }; data = $(this).serialize() + "&" + $.param(data); $.ajax({ type: "POST", dataType: "json", url: "ajax2.php", //Relative or absolute path to response.php file data: data, success: function (data) { //how to retrieve the php mysql result here? console.log(data); // this shows nothing in console,I wonder why? } }); return false; }); 

你的json编码应该是这样的:

  $json = array(); while( $row = $statement->fetch()) { array_push($json, array($row['Name'], $row['PostUUID'])); } header('Content-Type: application/json'); echo json_encode($json); 

在你的javascript部分,你不必做任何事情来取回你的数据,它存储在成功函数的数据var中。 您只需显示它并在网页上随意执行任何操作即可

在ajax success函数中,您可以使用JSON.parse(data)来显示JSON数据。

这是一个例子:

在JavaScript中解析JSON?

 header('Content-Type: application/json'); $row2 = array(); $result = array(); $statement = $pdo->prepare("SELECT * FROM posts WHERE subid IN (:key2) AND Poscode=:postcode2"); $statement->execute(array(':key2' => $key2,':postcode2'=>$postcode)); // $row = $statement->fetchAll(PDO::FETCH_ASSOC); while( $row = $statement->fetch()) { echo $row['Name'];//How to show this in the html page? echo $row['PostUUID'];//How to show this in the html page? $row2[]=$row; } if(!empty($row2)){ $result['type'] = "success"; $result['data'] = $row2; }else{ $result['type'] = "error"; $result['data'] = "No result found"; } echo json_encode($row2); 

在你的脚本中:

 $("form").on("submit",function() { var data = { "action": "test" }; data = $(this).serialize() + "&" + $.param(data); $.ajax({ type: "POST", dataType: "json", url: "ajax2.php", //Relative or absolute path to response.php file data: data, success: function(data) { console.log(data); if(data.type == "success"){ for(var i=0;i" +db_data.Name ); console.log("name -- >" +db_data.PostUUID); } } if(data.type == "error"){ alert(data.data); } } }); return false; }); 

你可以将json编码的字符串保存到数组中,然后将它的值传递给javascript。

请参阅以下代码。

  

您的JavaScript代码

 var data = ''; 

现在data变量包含所有JSON数据,现在您可以继续使用您的代码,只需删除下面的行

  data = $(this).serialize() + "&" + $.param(data); 

因为data变量是字符串,所以不需要它。

在你的ajax2.php文件中,你可以通过它

 json_decode($_REQUEST['data']) 

我会……

 $rows = $statement->fetchAll(FETCH_ASSOC); header("content-type: application/json"); echo json_encode($rows); 

然后在javascript方面:

 xhr.addEventListener("readystatechange",function(ev){ //... var data=JSON.parse(xhr.responseText); var span=null; var i=0; for(;i 

(不要依赖Web浏览器为你解析它.response因为application / json标题,它在浏览器之间有所不同......用responseText手动完成);