tôi bị kẹt với OOP dữ liệu PHP và dữ liệu json. Tôi không hoàn toàn mới để OOP, nhưng tôi không thể có được đầu của tôi xung quanh này. nếu có ai vui lòng giải thích cho tôi, sẽ rất tuyệt!Truyền dữ liệu từ lớp PHP sang PHPExcel qua AJAX
tôi có đối tượng lưới sau trong PHP:
Class Grid {
var $data;
var $joins;
var $fields;
var $where;
var $table;
var $groupBy;
var $having;
var $limit;
var $order_by;
var $sort;
var $security;
var $set;
var $sql;
....
// loads data into the grid
function load() {
...
// setup the sql - bring it all together
$sql = "
SELECT $post[cols]
FROM `$table`
$joins
$where
$groupBy
$having
ORDER BY $order_by $sort
$limit
";
$this->sql = $sql;
// execute the sql, get back a multi dimensial array
$rows = $this->_queryMulti($sql);
// form an array of the data to send back
$data = array();
$data['rows'] = array();
foreach($rows as $i=>$row) {
foreach($row as $col=>$cell) {
// use primary key if possible, other wise use index
$key = $primaryKey ? $row[$primaryKey] : $i;
// primary key has an _ infront becuase of google chrome re ordering JSON objects
//http://code.google.com/p/v8/issues/detail?id=164
$data['rows']["_".$key][$col] = $cell;
}
}
...
$data['order_by'] = $order_by;
$data['sort'] = $sort;
$data['page'] = $page;
$data['start'] = $startRow + 1;
$data['end'] = $startRow + $nRowsShowing;
$data['colData'] = $colData;
$this->data = $data;
}
và nó được gọi là bởi AJAX callgrid.php:
$grid->load();
// here we need to add field in data[sql] = sql query, then we can pass it to toExcel() - how?
echo json_encode($grid->data);
những gì tôi đang cố gắng để có được là để có thể xuất khẩu hiện tại truy vấn sql (nó có thể là tất cả hoặc tìm kiếm kết quả) vào Excel bằng cách sử dụng PHPExcel. Vì vậy, tôi đã có đểExcel.php với chức năng toexcel ($ truy vấn) - mà sẽ có một truy vấn và xuất khẩu nó để excel.
bây giờ - Làm cách nào để chuyển truy vấn sql từ lưới sang toexcel qua AJAX?
Tôi hiểu rằng tôi cần phải thêm vào $ data():
dữ liệu$ [ 'sql'] = $ sql;
tiếp theo là gì?
UPDATE: Tôi đang sử dụng lưới điện jquery sau: http://square-bracket.com/openjs
Tôi hiểu rằng PHPExcel nên được bắt đầu bằng cách lưới hoặc jquery
Tại sao thông qua AJAX? Tại sao không làm tất cả trong PHP? – Mchl
vì lưới tự tải từ ajax. Vì vậy, sql truy vấn sẽ được hình thành chỉ khi được gọi bởi ajax: '$ (". grid.digital_edit "). loadGrid ({...})' – Elen
ok - tôi không cần phải bị mắc kẹt với AJAX. nhưng dù sao thì sao? – Elen