Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Cela fait un mois que je me suis lancé sur la trace de ZEND. Je construit pour me former à l'utilisation du framework, un petit site d'attribution de numéros de série.
J'ai suivi les indications de différents forums et tutoriels lié à l'affichage du résultat d'une requête SQL sous la forme d'un tableau en utilisant le dataGrid dojo et Json.
J'affiche bien un tableau avec le titre des colonnes mais n'arrive pas à le remplir. J'ai pour message : 'Une erreur est survenue'.
Voici mon controller / action :
class HistoController extends Zend_Controller_Action { /** * Masque de saisie */ public function indexAction () { $this->view->title = 'Historique'; $formSite = new Application_Form_Histo_Index(); $this->view->formSite = $formSite; } /** * Afichage des résultats : */ public function resultatAction () { $this->view->title = 'Résultats'; $formSite = new Application_Form_Histo_Index(); $request = $this->getRequest(); if ($request->isPost()) { if ($formSite->isValid($request->getPost())) { $getPostValues = $request->getPost(); if (!empty($getPostValues)){ if ($formSite->isValid($request->getPost())) { $values = $formSite->getValues(); $query = "SELECT T.LIB_TYPE, S.ANREF, S.NUMERO, O.LIB_ORGANISME, S.DATE_DEP FROM SERIE S, TYPE T, ORGANISME O ....; $resultat = $dba->fetchAll($query, $binds); $dojoData= new Zend_Dojo_Data('NUMERO',$resultat,'NUMERO'); $this->view->dojoData = $dojoData->toJson(); } } } } } }
Ma vue : resultat.phtml
<div id="resultat"> <p class="titreAction"> <?php echo $this->title; ?> </p> <?php echo $this->dojoData; ?> <script type="text/javascript"> dojo.require('dojox.data.QueryReadStore'); dojo.require('dojox.grid.DataGrid'); var gridLayout = [ { name: "Type", field: "LIB_TYPE", width: "auto" }, { name: "Référence", field: "ANREF", width: "auto" }, { name: "Numero", field: "NUMERO", width: "auto" }, { name: "Organisme", field: "LIB_ORGANISME", width: "auto" }, { name: "Dépôt", field: "DATE_DEP", width: "auto" } ]; var store = null; dojo.addOnLoad(function() { store = new dojox.data.QueryReadStore({ url:"histo/resultat", method:"post" }); grid.setStore(store); grid.setStructure(gridLayout); }); </script> <div id="grid" dojoType="dojox.grid.DataGrid" jsId="grid" rowsPerPage="20" clientSort="true" store="store" query="{NUMERO:'*'}" structure="gridLayout"> </div> </div>
Et enfin mon layout où j'appels les modules et css dont j'ai besoin :
echo $this->dojo() ->enable() ->setLocalPath($this->baseUrl('/js/dojo/dojo.js')) ->addStyleSheetModule('dijit.themes.claro') ->addStylesheet($this->baseUrl('/js/dijit/dijit.css')) ->addStylesheet($this->baseUrl('/css/dojo.css')) ->addStylesheet($this->baseUrl('/css/EnhancedGrid.css')) ->addStylesheet($this->baseUrl('/css/claroGrid.css')) ->setDjConfigOption('parseOnLoad', true) ->setDjConfigOption('usePlainJson',true) ->requireModule('dojox.data.QueryReadStore') ->requireModule('dojox.grid.EnhancedGrid'); echo $this->headTitle('My ZF project');
Avez-vous une idée de ce qui ne convient pas dans ce que j'ai construit, générant une erreur lors de l'affichage?
Merci pour voter aide.
Cordialement.
Hors ligne
Pages: 1