首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >返回php的json时Jquery/Ajax错误

返回php的json时Jquery/Ajax错误
EN

Stack Overflow用户
提问于 2018-06-10 01:01:03
回答 1查看 51关注 0票数 0

在我的PHP中,我从一个表中收集数据,并以JSON格式回显。

PHP:

代码语言:javascript
复制
<?php
 include "bddata.php";
 header('Content-type: application/json; charset=utf-8'); 

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql="SELECT * FROM categoria ORDER BY idcategoria ASC ";
$result=$conn->query($sql);

while($row=$result->fetch_assoc()){
    $json[]=$row;
}

$data["data"]=$json;
//test variables to get in ajax
$data["idcategoria"] = $data["data"][0]["idcategoria"];
$data["nome_categoria"] = $data["data"][0]["nome_categoria"];
//echo $data["nome_categoria"];

//var_dump($data["data"][1]);

print json_encode($data);

$conn->close();
?> 

此代码返回类似以下内容:

代码语言:javascript
复制
idcategoria "21"

nome_categoria "Hotel"

1
idcategoria "22"

nome_categoria "Mecanica"

//my test variables

idcategoria "21"

nome_categoria "Hotel"

JS:

代码语言:javascript
复制
function inicializarForm(data) {
  var id;
  var nome;
  id = val(data["idcategoria"]);
  nome = val(data["nome_categoria"]);
  //$("#id").val(data["idcategoria"]);
  //$("#nome").val(data["nome_categoria"]);
}


$.ajax({
  url: "../php/busca.categoria2.php",
  type: "ajax",
  dataType: "json"

}).done(function(data) {
  window.alert("entrei na funcao");
  console.log(data)
  inicializarForm(data)
  console.log(nome);
  return;

}).fail(function(jqXHR, textStatus) {
  console.error(textStatus);
  window.alert("Erro, tente novamente!");
  console.log(textStatus);

}).always(function() {

});

在我的浏览器控制台中,我得到一个错误。

有人能告诉我可能会发生什么事吗?

初始用途:在控制台中记录idcategory的值和category_name

实际用途:获取PHP JSON并设置一个交互式菜单,其中包含在数据库中注册的类别。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 12:09:52

这是我的代码版本。

PHP

代码语言:javascript
复制
<?php
include "bddata.php";
header('Content-type: application/json; charset=utf-8'); 

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql="SELECT * FROM categoria ORDER BY idcategoria ASC ";
$result=$conn->query($sql);

while($row=$result->fetch_assoc()){
    $json[]=$row;
}

/*
$json = array(
    0 => array(
        'idcategoria' => 1,
        'nome_categoria' => 'Category 1'
    ),
    1 => array(
        'idcategoria' => 2,
        'nome_categoria' => 'Category 2'
    ),
);
*/

$data["data"]=$json;

print json_encode($data);

$conn->close();

HTML & JS

代码语言:javascript
复制
<html>
<head>
    <title>Show data</title>
    <script
          src="https://code.jquery.com/jquery-3.3.1.min.js"
          integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
          crossorigin="anonymous"></script>
</head>
<body>
<ul id="menu">
</ul>
<script>
function inicializarForm(data) {
    $.map(data, function(i) {
        $("#menu").append("<li><a href='#categoria_"+ i.idcategoria +"'>"+ i.nome_categoria +"</a></li>");
    });
}

$.ajax({
    url: "categoria2.php",
    type: "get",
    dataType: "json"
}).done(function(data) {
    window.alert("entrei na funcao");
    console.log(data['data']);
    inicializarForm(data['data']);
}).fail(function(jqXHR, textStatus) {
    console.error(textStatus);
    window.alert("Erro, tente novamente!");
    console.log(textStatus);
}).always(function() {

});
</script>
</body>
</html>

您可以使用$.map()$.each() jquery函数来循环从JSON返回的数据,这些数据已转换为javascript数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50776605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档