IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

[1.0.1] Listes liées


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut [1.0.1] Listes liées
    Je voudrais mettre en place sur mon applis un système de liste liée comme présenté sur le tuto de siddh http://siddh.developpez.com/articles/ajax/
    sur une architecture MVC.

    J'ai mit la partie javascript dans un fichier .js

    j'ai un controleur formController.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function afficheformAction {
     
    //code...
     
    $this->render(monformulaire)
     
     
    }
    public function ajaxAction {
    //code...
    $this->render(liste2)
    }
    Voici mes vues
    monformulaire.phtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    <select id="liste1" name="liste1" onChange='go()'>
    	  	  <option value="1" >1</option>
    	  	  <option value="2" >2</option>
    </select>
    <select id="liste2" name="liste2">
    </select>
    ...
    liste2.phtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    	  foreach($this->list2 as $list2)
    	  {
    	  ?>
    	  <option value="<?php echo $list2->id  ?>"><?php echo $this->escape($list2->descr) ?></option>
    	  <?php
    	  }
    	  ?>
    J'ai un problème au niveau de cette ligne dans le .js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Ici on va voir comment faire du post
    xhr.open("POST","quoi mettre ici",true);
    Je ne sais pas trop vers quelle url redirigée, j'ai essayé /form/ajax mais ça ne donne rien.

    Je débute avec ce framework et je ne connais pas grand chose en Javascript et ajax, donc je suis un peu perdu là

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    J'ai été confronté à peu près au même problème que toi. Je devais aussi intégrer de l'Ajax et du Zend Framework. J'ai pas trouvé de solution satisfaisante alors, ce que j'ai fait, c'est créer un dossier Ajax au niveau d'application. Et ensuite, j'ai mis plusieurs fichiers qui traitent la demande Ajax et me renvoient le XML.

    Tu ne pourras pas faire comme tu l'as écrit dans ton code. En effet, tu ne rafraichis pas la page, donc tu ne peux pas faire un nouveau render. Tu dois récupérer du XML depuis une page PHP et ensuite tu dois modifier l'affichage avec le code Javascript.

    Je me suis fait un fichier Ajax.php qu'inclue tous les autres fichiers me générant du XML pour Ajax, dans lequel je fais à peu près la même chose que dans index.php, c'est à dire que je charge la base de données, les include et tout le bazar. Comme ça, dans mes fichiers PHP Ajax je peux utiliser presque tout ce qui est Zend.

  3. #3
    Membre chevronné
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Par défaut
    Peut être faire une action du genre ajaxAction dans ton controller et désactivé le rendu automatique...

    j'ai fait ça pour un test de retour en JSON :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	public function jsonListAction(){
     
    		Zend_Loader::loadClass('Zend_Json');
     
    		$this->_helper->removeHelper('viewRenderer');
    		$data= $this->_user->fetchAll()->toArray();
     
            $responseJSON = Zend_Json::encode($data);
     
    		$this->getResponse()->setHeader('Content-Type', 'text/plain');
            $this->getResponse()->setBody($responseJSON);
     
    	}

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut
    Merci pour les réponses.

    J'ai toujours un probleme pour appeler mon code depuis le javascript peut être qu'avec mon arborescence vous aller pouvoir m'aider :

    MonApplis\
    ----------\application\
    ---------------------\controllers\formController.php
    ---------------------\inc\ajax.php
    ---------------------\views\
    ----------------------------\script\mesvues
    ----------\html\
    ---------------\js\listeLiee.js
    ---------------\index.php

    l'url de ma page où je veux placer les deux listes est http://monserveur/html/form/afficheform/

    si j'ai bien comprit je doit apeller le script ajax.php depuis ma fonction js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("POST","????????ajax.php",true);
    J'ai fait pas mal d'essai mais là je nage complètement

  5. #5
    Membre chevronné
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Par défaut
    En gardant la structure normal du MVC, tu devrais t'en sortir avec mon post au dessus....

  6. #6
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("POST","../../application/inc/ajax.php",true);
    Sinon, il faudra mettre le chemin complet.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 38
    Par défaut


    Merci en effet ce chemin fonctionne, j'avais également tester le chemin complet mais en partant de /var/www/... mais ça ne passais pas.

    Par contre pour ton post yannux je ne comprend pas vraiment ce que fait ta fonction ni comment elle interagit avec le javascript.

    Désolé je suis vraiment mauvais en JS

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb listes liées javascript/php
    Par boo64 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/06/2006, 12h35
  2. Deux listes lies et un lien
    Par arti2004 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2006, 16h44
  3. [MySQL] 1 table et 2 listes liées
    Par Ekik dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/02/2006, 16h47
  4. XMLHTTPRequest et listes liées
    Par ben23 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/12/2005, 16h32
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo