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