简单的应用程序php ajax无法正常工作

时间:2016-05-19 08:55:19

标签: php jquery mysql json ajax

我做了一个简单的应用程序php&阿贾克斯,我不知道为什么它不起作用。

我的代码:

<?php

$grId  = $_GET["groupId"];
$limit = $_GET["limit"];

if ($limit <= 0) {
  $limit = 10;
}

$servername = "localhost";
$username   = "root";
$password   = "root";
$dbname     = "productsdb";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql  = "SELECT id, displayName, role, groupId FROM user where groupId = ? limit ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $grId, $limit);
$stmt->execute();
$stmt->bind_result($id, $displayName, $role, $groupId);
$users = array();

while($stmt->fetch()) {
  $user              = new StdClass();
  $user->id          = $id;
  $user->displayName = $displayName;
  $user->role        = $role;
  $user->groupId     = $groupId;
  array_push($users, $user);
}

echo json_encode($users);

$stmt->close();
$conn->close();
?>

JSON-客户get.html:

<html>

<head>
  <script src="jquery-2.1.4.js"></script>
  <script>
    $(document).ready(function() {
      $('#students').hide();
      $("#getStudentsButton").click(function() {
        $.ajax({
          dataType: "json",
          type: "GET",
          url: "getStudentsJson.php",
          data: {
            groupId: 1,
            limit: 7
          },
          success: renderTable
        });
      });

      function renderTable(data) {
        var trHTML = '';
        $.each(data, function(i, item) {
          trHTML += '<tr><td>' + item.id + '</td><td>' + item.displayName + '</td><td>' + item.role + '</td> <td> ' + item.groupId + ' </td></tr>';
        });

        $('#students').append(trHTML);
        $('#students').show();
      }

    });
  </script>
</head>

<body>

  Lista studentilor din grupul 1:
  <div id="maindiv">
    <table id="students" border="1">
      <tr>
        <th>Id</th>
        <th>Name</th>
        <th>Role</th>
        <th>GroupId</th>
      </tr>
    </table>
  </div>
  <input id="getStudentsButton" type="button" value="Load students" />
</body>
</html>

我在phpmyadmin中创建了一个新的数据库productsdb,其中包含表用户并插入了一个值。

当我运行localhost / folder / json-client-get.html并按下按钮时,学生没有任何事情发生。

编辑(用我的数据库拍照,但我不知道为什么照片不能正常工作)

screenshot with my db

2 个答案:

答案 0 :(得分:1)

我测试了你的代码,你遇到了SQL的问题:

$sql = "SELECT id, displayName, role, groupId FROM user where groupId = ? limit ?";

检查表格结构并确保您拥有这些字段

确保在phpmyadmin中运行此查询并查看结果

SELECT id, displayName, role, groupId FROM user where groupId = 1 limit 7

答案 1 :(得分:0)

这个答案不会解决您的问题,只是告诉您如何调试您的ajax调用。我认为,通过了解如何解决问题,您将从中获益更多,而不是解决问题。

看看下面的ajax调用:

$(document).ready(function(e) {
    $.ajax({
        url: 'ajaxScript.php',
        type: 'POST',
        data: {
            'somevar': 'somevalue'
        },
        success: function(result)
        {
            alert('Successfully called');
        },
        error: function(exception)
        {
            alert('Exeption:'+exception);
        }
    })
})