bonjour,
étant complètement débutant avec Zend Framework (ou même les frameworks php en général), je galère un peu en ce moment avec l'utilisation de la bibliothèque Dojo.
Pour ce faire j'essaye de suivre le tuto suivant: Techorus
J'affiche le formulaire, je sais q la fonction destinée à créer la liste fonctionne correctement - c'est donc à priori au niveau de l'attribution de la liste des choix possibles au champ Input qu'il y a un souci.
L'arborescence:
projet
[fichiers: .htaccess, bootstrap.php]
__application
..........[fichiers: config.ini]
.........|__controllers
.........|.........[fichiers php: CeController, ErrorController, IndexController]
.........|__layouts
.........|.........[fichiers: layout.phtml]
.........|__models
.........|.........[fichiers php: Pays, ...]
.........|__views
.........|.........|__helpers
.........|.........|__scripts
.........|..................|__ce
.........|.................. [fichiers: creer.phtml, index.phtml]
.........|..................|__error
.........|.................. [fichiers: error.phtml]
.........|..................|__index
.........|.................. [fichiers: error.phtml, index.phtml]
__library
.........|__Zend
__public
.........|__css
..................[fichiers: design.css]
.........|__images
.........|__js
..............|__dijit
..............|__dojo
..............|__dojox
et voici le code
-> pour le controller: CeController.php
-> pour le bootstrap.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 <?php class CeController extends Zend_Controller_Action { public function indexAction() { $form = $this->getForm(); if ($this->_request->isPost()) { if ($form->isValid($_POST)) { /* * Process data */ $paysId = $this->_getParam('pays_id'); //$userId contains the userId input by the user } else { $form->populate($_POST); $this->view->form = $form; } } else { $this->view->form = $form; } } public function payslistAction() { $db = new Zend_Db_Adapter_Pdo_Mysql(array( 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'mysql', 'dbname' => 'mobilite' )); $result = $db->fetchAll("SELECT pays_id, pays_nom FROM pays"); $data = new Zend_Dojo_Data('pays_id', $result); $this->_helper->autoCompleteDojo($data); } public function getForm() { $form = new Zend_Form; $paysId = new Zend_Dojo_Form_Element_FilteringSelect('listPays'); $paysId->setLabel('choisir un pays: ') ->setAutoComplete(true) ->setStoreId('paysStore') ->setStoreType('dojo.data.ItemFileReadStore') ->setStoreParams(array('url'=>'./payslist/')) ->setAttrib("searchAttr", "paysname") ->setRequired(true); $submit = $form->createElement('submit', 'submit'); $form->addElements(array($paysId, $submit)); return $form; } } ?>
-> pr le .htaccess :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <?php error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 1); date_default_timezone_set('Europe/Paris'); // mise en place des répertoires et chargement des classes set_include_path('.' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models/' . PATH_SEPARATOR . get_include_path()); include "Zend/Loader.php"; Zend_Loader::registerAutoload(); // Chargement de la configuration $configDB = new Zend_Config_Ini('./application/config.ini', 'database'); $registry = Zend_Registry::getInstance(); $registry->set('configdb', $configDB); // Mise en place de la BDD $db = Zend_Db::factory($configDB->db); Zend_Db_Table::setDefaultAdapter($db); // Chargement des dates pr les formulaires $configDates = new Zend_Config_Ini('./application/dates.ini', 'dates'); Zend_Registry::set('dates', $configDates); // setup controller $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); $frontController->setControllerDirectory('./application/controllers'); Zend_Layout::startMvc(array('layoutPath'=>'./application/layouts')); /* $view = new Zend_View(); $view->addHelperPath('/application/views/helpers/', 'Zend_View_Helper'); */ //echo $view->render('view.php'); // Create new view object if not already instantiated $view = new Zend_View(); Zend_Dojo::enableView($view); $view->dojo() ->addStyleSheetModule('dijit.themes.tundra') ->setDjConfigOption('usePlainJson', true) ->disable(); // run! $frontController->dispatch();
Un coup de main serait plus que le bienvenu (et les explications qui vont avec aussi ca serait super)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 # Règles de réécriture pour Zend Framework RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* bootstrap.php # Sécurité : Ne pas autoriser le parcours de répertoires Options -Indexes # Configuration PHP php_flag magic_quotes_gpc off php_flag register_globals off php_flag short_open_tag on
merci d'avance
Ced.
Partager