如何获取我的数据

时间:2013-12-13 16:55:59

标签: javascript php jquery mysql json

我是动态数据新手并试图

  1. 使用PHP
  2. 从mysql数据库中读取数据
  3. 将此数据转换为JSON
  4. 通过javascript(jQuery)获取数据
  5. 将其插入我的页面。
  6. 据我所知,1)和2)工作正常,3)似乎有点工作,4)是它破坏的地方。

    我已经设置了数据库和表格,查询&如此回应数据(api.php)

    <?php 
    
      include 'db.php';
      $con = new mysqli($host,$user,$pass,$databaseName);
    
      /* check connection */
    if (mysqli_connect_errno()) {
      printf("Connect failed: %s\n", mysqli_connect_error());
      exit();
    }
    
      $query = "SELECT * FROM $tableName";
      $myArray = array();
    
      if ($result = $con->query($query)) {
        $tempArray = array();
        while($row = $result->fetch_object()) {
          $tempArray = $row;
          array_push($myArray, $tempArray);
        }
        echo json_encode($myArray);
      }
    
      $result->close();
      $con->close();
    
    ?>
    

    现在我通过javascript ...

    了解它
    jQuery(function($) {    
        $.ajax({                                      
            url: 'php/api.php',
            data: "json",
            dataType: "",    
            success: function(data) {
                var r = new Array(), j = -1;
                for (var key=0, size=data.length; key<size; key++){
                    r[++j] ="<tr><td>";
                    r[++j] = data[key][0];
                    r[++j] = "</td><td>";
                    r[++j] = data[key][1];
                    r[++j] = "</td><td>";
                    r[++j] = data[key][2];
                    r[++j] = "</td></tr>";
                }
                var joined = r.join('');
                console.log(joined);
                $('#maintable tbody').html(joined);    
            }
        });
    });
    

    ...并把它扔进我桌子的tbody元素。

    结果绝对不符合我的预期:

    请参阅http://i.imgur.com/hRNrmdC.jpg(对部分德语界面感到抱歉)

    GET请求的答案是有效的JSON,至少在理论上(由http://jsonlint.com/检查),但对我来说,似乎数据被视为字符串并分成一组字符(每个字符串a数据[]中的“key”,因此“data [key] [1]不返回任何内容。

    var json = JSON.stringify(eval("(" + data + ")"));
    

    继续json [key] [0]没有帮助...

    现在我想知道为什么,特别是出了什么问题以及如何修复

1 个答案:

答案 0 :(得分:4)

你混淆了ajax调用中的键:

    data: "json",
    dataType: "",    

应该是:

    dataType: "json",

因为您根本没有发送或使用任何数据。