utknąłem z danymi OOP PHP i json. Nie jestem całkowicie nowy w OOP, ale nie mogę tego zrozumieć. jeśli ktokolwiek może mi to wyjaśnić, byłby świetny!Przekazywanie danych z klasy PHP do PHPExcel przez AJAX
mam następujący obiekt siatki w 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;
}
i jest nazywany przez 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);
co staram się dostać to, aby móc eksportować prąd kwerendy sql (może to być wszystkie lub wyniki wyszukiwania) do programu Excel przy użyciu PHPExcel. Więc mam do Exxcel.php z funkcją toexcel ($ query) - to zajmie kwerendę i wyeksportuje ją do programu Excel.
teraz - JAK przekazać zapytanie sql z siatki do toexcel za pośrednictwem AJAX?
Rozumiem, że trzeba dodać do $ dane():
$ data [ 'sql'] = $ sql;
co dalej?
UPDATE: Używam następujące jquery siatki: http://square-bracket.com/openjs
Rozumiem, że PHPExcel należy rozpoczynać albo przez siatkę lub jQuery
Dlaczego poprzez AJAX? Dlaczego nie zrobić tego wszystkiego w PHP? – Mchl
, ponieważ sama siatka ładuje z ajax. tak zapytań SQL zostaną utworzone tylko wtedy, gdy wywołana przez AJAX: '$ loadGrid ({...})' – Elen
ok - i nie muszą być skazani na AJAX ("grid.digital_edit.").. ale jak to w ogóle było? – Elen