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

Zend_Form PHP Discussion :

[Zend_Form] <select> - Ajax - MVC


Sujet :

Zend_Form PHP

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut [Zend_Form] <select> - Ajax - MVC
    Bonjour,

    je voudrais savoir si quelqu'un à déjà réussi a faire des listes liés via Ajax sous ZF avec le MVC.

    Jusqu'ici J'arrive bien a faire la partie ajax, mais je n'arrive pas a rafraîchir la page view.

    la question est "est-ce possible"?


    Merci de votre aide

  2. #2
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Salut,
    J'ai créer une application en utilisant le ZF et le modèle MVC. Et j'ai une fonction javascript qui permet d'afficher une page dans une partie de la fenêtre. Et ça fonctionnait normalement.
    Mais, ce matin j'ai voulu mettre dans ma page un menu dynamique pour faciliter la navigation entre les pages. Et à ce moment là, le menu marche très bien, mais les pages ne se chargent plus.

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Mais en gros, c'est bon.
    Les pages peuvent être rafraichis avec ZF et MVC.

    Si vous voulez, je peux vous envoyer ma fonction javascript.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    ouiiiiiiiiii, je veux bien merci

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    salut j'ai fais un exemple identique à ce que tu veux

    cela est le code html pour la select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select  id="famille_select" name="famille_select" onchange="fourfam(document.getElementById('famille_select').value)">
    			
    				<option value="">_ _ Liste des familles _ _</option>
    					<?php foreach($this->famille as $fam):?>
    					
    					<optgroup label="<?php echo $fam['nom_fam'];?>"></optgroup>
    					
    					<option  value="<?php echo $fam['id_fam'];?>"  ><?php echo $fam['nom_fam'];?></option>
    		 			<?php endforeach; ?> </select></td>

    la fonction fourfam est une fonction qui utilise ajax pour charger le résultat dans un div .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
             }
    function fourfam(numero) {
     
                        iLanceLoZaFair('id='+ numero +'','<?php echo $this->baseUrl; ?>/index/fournisseurfamille', 'GET',"fournisseur");
     
              }
    et dans controllers tu recupere la valeur de ta select par une fonction ajax
    ce code affiche les fournisseurs qui fournissent cette famille à travers une table intermediaire l'essentiel c'est de recuperer la valeur de select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $req="SELECT * FROM `consultation1`.`fournisseur`,`consultation1`.`four_fam` WHERE  `consultation1`.`fournisseur`.num_four=`consultation1`.`four_fam`.num_four 			and `consultation1`.`four_fam`.id_fam='".$_GET['id']."'";
     
    		 $this->view->fourfam = $GLOBALS['db']->fetchAll($req);
    la fonction iLanceLoZaFair est la suite

    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
     
    function iLanceLoZaFair(data, page, method, elem)
    {
     
     
     
            //Mozilla
            var FerTedObjc = new XMLHttpRequest();
        //fin else
     
        //définition de l'endroit d'affichage:
        var content = document.getElementById(elem);
     
        //si on envoie par la méthode GET:
        if(method == "GET")
        {
            if(data == 'null')
            {
                //Ouverture du fichier sélectionné:
                FerTedObjc.open("GET", page);
            }//fin if
            else
            {
                //Ouverture du fichier en methode GET
                FerTedObjc.open("GET", page+"?"+data);
            }//fin else
        }//fin if
        else if(method == "POST")
        {
            //Ouverture du fichier en methode POST
            FerTedObjc.open("POST", page);
        }//fin elseif
        FerTedObjc.onreadystatechange = function()
        {
    		//tant que la réponse n'est pas arrivé afficher l'image d'attente
    		if (FerTedObjc.readyState < 4){
     
    			content.innerHTML = '<img src="images/cal.bmp">';
    		}
    		else {
    		//sinon retourner la réponse	
    		content.innerHTML = FerTedObjc.responseText;
     
    		}
        }    
        if(method == "GET")
        {
            FerTedObjc.send(null);
        }//fin if
        else if(method == "POST")
        {
            FerTedObjc.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            FerTedObjc.send(data);
     
        }//fin elseif
    }//fin fonction iLanceLoZaFair
    ok, voici "yosraisi" ma copine vous a envoyé l'explication avant moi. Nous travaillons toutes les 2 avec la même fonction.
    J'espère que cet exemple vous aide dans votre application.

    Désolé pour le retard, mais voici ma copine "yosraisi" vous a envoyé l'explication avant moi. Nous travaillons toutes les 2 avec la même fonction.
    J'espère que cet exemple vous aide dans votre application.

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,

    Pour ma part je travaille avec la librairie JQuery, mais cela fais a peu près la même chose que vous.

    Mon select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <select id="list" onchange="changeList(this)">
    La fonction ajax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function changeList(el)
    	{$.ajax({
    		type: 'POST',
    		url: '<?php echo $this->baseUrl?>/test/instance',
    		data: 'ajax=' + el.options[el.selectedIndex].value,
    	});
    	}
    le controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    public function InstanceAction()
    	{
     
    		$db2 = new models_SpacesDb(DB_PATH.DB_DB2,$_SESSION['database']);
    		$_SESSION['SapceInstances'] = $db2->getInstanceFileSystem($_POST["ajax"]);
    		$this->_redirect('/test/index');
     
    	}
    Alors cela fonctionne mais ne s'affiche pas, je m'explique, tous est mis en place, et dans firebug, je vois bien dans la page html que tous est bien passer, mais je n'ai pas de rafraîchissement de la page.

    Une idée ?

    MaitrePylos

  7. #7
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    est ce que tu a mis, dans la page que tu veux la rafraichir, une balise <div>?

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    je viens de le faire, je met donc le div en display: none
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="liste2" style="display: none">
    et dans ma fonction jquery je rajoute un :success qui affiche ce div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function changeList(el)
    	{$.ajax({
    		type: 'POST',
    		url: '<?php echo $this->baseUrl?>/test/index',
    		data: 'ajax=' + el.options[el.selectedIndex].value,
    		success: function () { $("div#liste2").show("fast");}
    	});
    	}
    et cela fonctionne nickel , merci de votre aide

    MaitrePylos

  9. #9
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut félicitation
    ça me fait plaisir.
    Mes félicitations.
    NB: n'oublier de mettre "Résolu"

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Quelqu'un a déjà tenté la même chose avec Zend_Form ?

    Si oui, peut-ll (elle) donner un exemple de code ?

    Merci...

    Mathieu

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

Discussions similaires

  1. [AJAX] Mise à jour du "select" en ajax
    Par MeHo_ dans le forum AJAX
    Réponses: 15
    Dernier message: 30/04/2009, 17h26
  2. [AJAX] 2 select Onchange ajax
    Par mohsen01 dans le forum AJAX
    Réponses: 17
    Dernier message: 30/04/2009, 00h15
  3. Réponses: 1
    Dernier message: 27/04/2009, 18h03
  4. [AJAX] Actualiser plusieurs selects communs ajax
    Par throrin19 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 13/01/2009, 14h42
  5. Initialisation Select avec Ajax (php)
    Par VooDooNet dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/08/2007, 09h45

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