Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过ajax将mysql结果作为jSON传递_Php_Jquery_Mysql_Ajax_Json - Fatal编程技术网

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

Php 如何通过ajax将mysql结果作为jSON传递,php,jquery,mysql,ajax,json,Php,Jquery,Mysql,Ajax,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 = $sta

我不知道如何通过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部分,您不必做任何事情来获取数据,它存储在来自success函数的datavar中。
您可以在网页上显示它并使用它做任何您想做的事情

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

以下是一个例子:

在你的剧本中:

$("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<data.data.length;i++){
              //// and here you can get your values //
             var db_data = data.data[i];
              console.log("name -- >" +db_data.Name );
              console.log("name -- >" +db_data.PostUUID);
           }
         }
         if(data.type == "error"){
            alert(data.data);
         }
      }
    });
    return false;

});
$(“表单”)。在(“提交”,函数()上{
风险值数据={
“操作”:“测试”
};
data=$(this.serialize()+“&”+$.param(data);
$.ajax({
类型:“POST”,
数据类型:“json”,
url:“ajax2.php”,//response.php文件的相对或绝对路径
数据:数据,
成功:功能(数据){
控制台日志(数据);
如果(data.type==“成功”){

对于(var i=0;i,您可以将json编码的字符串保存到数组中,然后将其值传递给javascript

请参阅下面的代码

<?php 
// your PHP code 
$jsonData = json_encode($row2); ?>
因为
数据
变量是字符串,所以不需要它

在您的
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<data.length;++i){span=document.createElement("span");span.textContent=data[i]["name"];div.appendChild(span);/*...*/}
}
xhr.addEventListener(“readystatechange”,函数(ev){
//...
var data=JSON.parse(xhr.responseText);
var span=null;
var i=0;

对于(;I选中console中的“网络”选项卡。@sgtBOSE,相关文件的状态为“确定”响应是什么?我是否必须明确定位此行的“标题”('Content-Type:application/json')某处?因为我的代码中显然有错误,尽管您显式显示了代码,但它没有输出任何内容!!!!这不是强制性的。只需将data=JSON.parse(data)放在ajax成功函数中。它会工作的。
json_decode($_REQUEST['data'])
$rows = $statement->fetchAll(FETCH_ASSOC);
header("content-type: application/json");
echo json_encode($rows);
xhr.addEventListener("readystatechange",function(ev){
//...
var data=JSON.parse(xhr.responseText);
var span=null;
var i=0;
for(;i<data.length;++i){span=document.createElement("span");span.textContent=data[i]["name"];div.appendChild(span);/*...*/}
}