作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用插件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/
我是一名优秀的程序员,十分优秀!