如何通过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手动完成);