php - 如何从 jquery php 调用类函数?

标签 php jquery

我正在使用插件ParamQuery网格并且数据源需要获取json数据, 这就是我想用 $ 做的事情。 getJson(...){},但是我有一个名为 data.php 的 PHP 类,其中包含 一个名为 GetData 的方法,其他 InsertData、DeleteData(CRUD-使用 PDO),GetData 以 json 形式返回信息。 问题是如何从jquery调用该函数

我使用的代码是:

数据.php

   <?php
   class Data {
   private $db = NULL;
   const DB_SERVER = "localhost";
   const DB_USER = "root";
   const DB_PASSWORD = "usbw";
   const DB_NAME = "musicstore";

   public function __construct() {
    $dsn = 'mysql:dbname=' . self::DB_NAME . ';host=' . self::DB_SERVER;
    try {
        $this->db = new PDO($dsn, self::DB_USER, self::DB_PASSWORD);
    } catch (PDOException $e) {
        throw new Exception('Connection failed: ' . $e->getMessage());
    }
    return $this->db;
   }

    public function getData() {

    $statement = $this->db->prepare("Select * from Customer");
    $statement->execute();

    if ($statement->rowCount() > 0) {
        echo json_encode($statement);
    }

    return false;
     }
   }
 ?>

functionjquery.js

    $.getJSON('Data.php', function(data) {
var obj = {};
obj.width = 1000;
obj.height = 400;
obj.colModel = [{title: "Rank", width: 150, dataType: "integer"},
    {title: "Company", width: 200, dataType: "string"},
    {title: "Revenues ($ millions)", width: 200, dataType: "float", align: "right"},
    {title: "Profits ($ millions)", width: 200, dataType: "float", align: "right"}];
obj.dataModel = {data: data};
$("#grid_array").pqGrid(obj);

});

最佳答案

您需要创建一个页面,该页面构造 Data 类的实例,然后输出 getData() 的结果

不过,您不应该在函数内部echo。将您的 getData 方法更改为如下所示:

public function getData() {
    $statement = $this->db->prepare("Select * from Customer");
    $statement->execute();
    return $statement->rowcount() > 0 ? $statement->fetchAll() : NULL;
}

然后,为了透明起见,创建一个新页面,我们将其命名为 json_data.php:

require_once "data.php";
$dataObj = new Data();
echo json_encode($dataObj->getData());

现在更改 jQuery 中的 $.getJSON 调用以请求 json_data.php 页面。

$.getJSON('json_data.php', function(data) { ... });

这应该可行。

关于php - 如何从 jquery php 调用类函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356469/

相关文章:

javascript - 检测到页脚标签时如何取消底部的 float div?

javascript - 我的脚本只运行一次,我想要无限次而不重新加载 html 页面

jquery - 当元素接收类时,更改另一个元素上的 css

javascript - jquery 建议或帮助将 flash 转换为 jQuery

php - Mysql 结果作为数组

php - 从 PHP 获取 OpenSSL 的 CAPath 的可靠方法是什么?

php在多列mysql中搜索

php - 基于日期的 LEFT JOIN 变体

PHP5 PDF生成?

javascript - DOM 更新后出现 "mouseup"问题