【问题标题】:Get data from PHP query using JSON not working使用 JSON 从 PHP 查询中获取数据不起作用
【发布时间】:2016-01-21 10:36:21
【问题描述】:

我的php代码是:

$query = "SELECT * FROM users WHERE user='admin' AND password='MTIz'";
$result = $link->query($query);
$yes = array();
$yes[] = $result->num_rows;
echo json_encode($yes);

而我的 HTML 代码是:

  $.ajax({
    url: 'vlogin.php',
    type: 'POST',
    data: myData,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function(yes) {
    alert(yes.Result);}
});

不返回任何东西。会出现什么?谢谢

【问题讨论】:

  • 警报显示什么?您可以尝试删除contentType
  • 试试$yes['Result'] = $result->num_rows;
  • 发送console.log(yes) 以准确了解您的回复内容
  • 您能发布您的 JSON 代码吗?确保它是有效的。
  • $link 是什么对象? $result->num_rows 应该包含什么?它是一个对象吗?是整数吗?您在哪里定义 Result 索引?编写$yes = array(); $yes[] = $result->num_rows; 时,您不会有任何$yes['Result'],而是$yes[0]['Result']

标签: javascript php jquery json mysqli


【解决方案1】:

在使用$.ajax()时,我通常会实现错误回调:

来自 jquery 文档: error(类型:函数(jqXHR jqXHR,字符串 textStatus,字符串 errorThrown))

实施它可以让您查看调用是否正在生成(错误的 JSON)或接收(网络服务错误)错误:您可以记录/警告 textStatus 和 errorThrown。

$.ajax({
      url: 'vlogin.php',
      type: 'POST',
      data: myData,
      dataType: 'json',
      contentType: "application/json; charset=utf-8",
      success: function(yes) {
          console.log(yes.Result);
      },
      error: function(jqXHR, textStatus, errorThrown) {
          console.log(textStatus);
          console.log(errorThrown);
      }
});

【讨论】:

    【解决方案2】:
    $query = "SELECT * FROM users WHERE user='admin' AND       password='MTIz'";
    $result = $link->query($query);
    $yes = array();
    $yes[] = $result->num_rows;
    echo json_encode($yes);
    die;
    

    json_encode($yes); 之后申请死,它会给你结果

    并且只提醒是这样的alert(yes);

    【讨论】:

    • 能否请您解释一下die; 有何帮助?
    • 因为有时会在发送到下一页之前运行更多代码。
    • 有时没有die;直接编码到任何其他控制器后的功能。我在申请die; 时遇到了同样的问题,问题已解决。不确定它是否对你有用!但它对我有用。
    【解决方案3】:

    试试下面

     $query = "SELECT * FROM users WHERE user='admin' AND password='MTIz'";
     $result = $link->query($query);
     $yes = array();
     $yes['record'] = $result->num_rows;
     echo json_encode($yes);
    

    还有.ajax

      $.ajax({
              url: 'vlogin.php',
              type: 'POST',
              data: myData,
              dataType: 'json',
              contentType: "application/json; charset=utf-8",
              success: function(yes) {
              console.log(yes.record);
        }
     });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 2021-11-13
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      相关资源
      最近更新 更多