के माध्यम से PHP क्लास से PHPExcel तक डेटा पास करना मैं ओओपी PHP और जेसन डेटा के साथ अटक गया। मैं ओओपी के लिए बिल्कुल नया नहीं हूं, लेकिन मैं इसके चारों ओर अपना सिर नहीं ले सकता। अगर कोई मुझे समझा सकता है, तो बहुत अच्छा होगा!AJAX
मैं 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;
}
और यह 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);
मैं क्या पाने के लिए कोशिश कर रहा हूँ वर्तमान निर्यात करने के लिए सक्षम होने के लिए है PHPExcel का उपयोग कर एक्सेल में एसक्यूएल क्वेरी (यह सभी या खोज परिणाम हो सकता है)। तो मुझे फ़ंक्शन toexcel ($ क्वेरी) के साथ Excel.php मिल गया है - जो एक प्रश्न लेगा और इसे एक्सेल करने के लिए निर्यात करेगा।
अब - मैं AJAX के माध्यम से ग्रिड से toexcel तक SQL क्वेरी कैसे पास करूं?
मैं समझता हूँ कि मैं $ करने के लिए डेटा() जोड़ने की जरूरत:
$ डेटा [ 'एसक्यूएल'] = $ एसक्यूएल;
अगला क्या है?
अद्यतन: मैं निम्नलिखित jQuery ग्रिड का उपयोग कर रहा: http://square-bracket.com/openjs
मैं समझता हूँ कि PHPExcel या तो ग्रिड या jQuery द्वारा शुरू किया जाना चाहिए
क्यों AJAX के माध्यम से के साथ फ़ाइल को प्रदर्शित? PHP के भीतर यह सब क्यों नहीं करते? – Mchl
क्योंकि ग्रिड स्वयं AJAX से लोड होता है। इसलिए एसक्यूएल क्वेरी केवल तभी बनाई जाएगी जब AJAX द्वारा कॉल किया गया हो: '$ ("। grid.digital_edit ")। loadGrid ({...})' – Elen
ठीक है - मुझे AJAX के साथ अटकने की आवश्यकता नहीं है। लेकिन फिर भी कैसे? – Elen