Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2008, 12h00   #1
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
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
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 14h17   #2
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
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.
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 14h20   #3
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
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.
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 14h24   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
ouiiiiiiiiii, je veux bien merci
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 14h48   #5
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
salut j'ai fais un exemple identique à ce que tu veux

cela est le code html pour la select

Code :
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 :
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 :
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 :
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.
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 07h59   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
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 :
1
2
3
 
 
<select id="list" onchange="changeList(this)">
La fonction ajax

Code :
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 :
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
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 12h15   #7
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
est ce que tu a mis, dans la page que tu veux la rafraichir, une balise <div>?
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 13h11   #8
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
je viens de le faire, je met donc le div en display: none
Code :
1
2
 
<div id="liste2" style="display: none">
et dans ma fonction jquery je rajoute un :success qui affiche ce div
Code :
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
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 14h21   #9
Membre du Club
 
Inscription : février 2008
Messages : 117
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 117
Points : 40
Points : 40
Par défaut félicitation

ça me fait plaisir.
Mes félicitations.
NB: n'oublier de mettre "Résolu"
salmoucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2008, 17h01   #10
Invité régulier
 
Inscription : mai 2006
Messages : 15
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 15
Points : 8
Points : 8
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
MV1908 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h01.


 
 
 
 
Partenaires

Hébergement Web