【问题标题】:Ajax Request for Mysql DatabaseMysql 数据库的 Ajax 请求
【发布时间】:2015-09-14 08:48:53
【问题描述】:

我尝试将我的 mysql 数据库的内容获取到我的网站。 为此,我需要 Javascript 来处理数据。 问题是我只想使用 php 从数据库中获取数据。剩下的,我想处理一个ajax请求,但我不明白。 这是我的尝试:

这是database.php文件

<?php
    $pdo=new PDO("mysql:dbname=markers;host=127.0.0.1","root","");
    $stmt = $pdo->query("SELECT * FROM markers");
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($results);
?>

这是我对 ajax 请求的尝试:

$(function(){
    $.ajax({                                      
        url: 'api.php',                       
        data: "",                                                      
        dataType: 'json',                
        success: function(data)          
        {
            var id = data['id'];             
            var vname = data['desc'];          
        } 
    });   
});

问题,我没有得到内容,我只是得到了未定义的回报。

对于大型数据库来说,这是一个好的解决方案吗?在用户的每次页面访问中,mysql - 语句都会被执行,整个 db 表会在 json 中编码以用于 ajax 请求。

谢谢:)

【问题讨论】:

  • 从一张大表中选择所有内容绝对不是一个好主意。现在你应该调试你的 PHP 脚本是否返回数据。如果它返回,那么在 JS 部分你有 json 数据,所以你不能将它们作为数组访问。
  • PHP 脚本以 Json 格式返回数据,如下所示:{"id":"1","desc":"Frankie Johnnie &amp; Luigo Too","address":"939 W El Camino Real, Mountain View, CA","lat":"37.386337","lng":"-122.085823"},
  • 你必须像数组一样阅读它。
  • 好的,使用 ajax?但是如何?
  • 首先我会在数据变量上执行 Console.log 以查看您得到的响应。它还返回一个对象而不是数组 IIRC,所以你应该做 data.id 而不是 data['id']

标签: javascript php jquery mysql ajax


【解决方案1】:

这只是因为你得到一个二维数组对象,, 试试下面的方法

$(function(){
    $.ajax({                                      
      url: 'api.php',                       
      data: "",                                                      
      dataType: 'json',                
      success: function(data)          
      {
        //var obj=JSON.parse(data);
        var obj=data;
        for (var x in obj)
          {
          alert(obj[x].id + " AND " + obj[x].desc);
          }         
      } 
   });   
});    

【讨论】:

    【解决方案2】:

    了解确切情况的最佳方法是从服务器响应中获取对象详细信息

    ..你会在这样做的时候发现错误

    $(function(){
        $.ajax({                                      
          url: 'api.php',                       
          data: "",                                                      
          dataType: 'json',                
          success: function(data)          
          {
            alert(JSON.parse(data));          
          } 
       });   
    });
    

    【讨论】:

    • 你可以在解析 json 时获取值 var ob=JSON.parse(data) ;警报(ob.id);
    • jQuery 会自动将 ajax 响应解析为 JSON - 还有为什么要提醒数据库响应,请使用 console.log
    • @Coderrrr,当然,你是对的,但是在开发或测试期间,alert 可以替代 console.log ..
    • 哦,现在我明白了。从 ajax 请求的成功部分调用 JS 函数是个好主意吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多