Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > HTML_quickform
HTML_quickform Forum d'entraide pour la bibliothèque HTML_quickform du framework PEAR, permettant de manipuler des formulaires en PHP. Avant de poster -> tutoriels QuickForm
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 17/03/2008, 11h40   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 12
Points : 3
Points : 3
Par défaut [QuickForm] Problème résultat d'une requete dans liste déroulante

Bonjour à tous,
j'utilise actuellement la classe quickform de pear,et j'ai un problème pour afficher le résultat d'une requête dans un champs select .

j'ai suivi le tutoriel http://php.developpez.com/cours/pear/html-quickform/ mais lorsque je le reproduit sur ma base rien ne s'affiche dans ma liste déroulante . Il y a bien l'ascenseur dans la liste mais rien d'écrit.

voici un morceaux de mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
...
$form = new HTML_QuickForm('Inscription','post','#');
 
$form->addElement('header', null, 'Formulaire d\'inscription');
$form->addElement('text','pseudo','Pseudo');
$form->addElement('text','pass','Password');
$form->addElement('text','email','Email');
$form->addElement('text','prenom','Prenom');
$form->addElement('text','nom','Nom');
 
$paysselect = & $form->addElement('select','pays','Pays');
$paysselect->load($result);
$paysselect->loadquery($dsn,'select * from Pays','Pays','titre');
...
Le package DB est bien installé et les autres champs de mon formulaire s'affiche également .

j'ai l'impression que le problème viens de cette ligne
Code :
1
2
 
 $paysselect->load($result);
car je n'est pas de variable $result dans mon code,
dans le tutoriel non plus l'auteur n'a pas de variable $result déclarée, je ne vois pas comment cela peut marcher.

Quelqu'un aurait une idée ?
Lotharzco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2008, 14h19   #2
Invité de passage
 
Inscription : novembre 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 12
Points : 3
Points : 3
Par défaut autre problème

J'ai finalement contourné par cette solution

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
/****************************************************/
/*Renvoi le résultat d'une requête dans un tableaux*/
/****************************************************/
function select_table($table,$i,$champs)
{
	$tab=array();
	$query="select * from ".$table." order by ".$champs;
	$result=mysql_query($query) or die(mysql_error());
	while ($row = mysql_fetch_row($result)) {
		array_push($tab,$row[$i]);
	}
return $tab;
}
 
 
/********************/
/*Code du formulaire*/
/********************/
 
$tab = select_table("pays",1,"titre");
$form->addElement('select','pays','Pays',$tab);
Mais un autre problème survient. J'ai une table ville comprenant environ 39 000 villes et lorsque que j'affiche le formulaire, il reste bloqué sur le champs ville le temps que la requête se fasse et ça n'affiche pas le reste du formulaire.

Quelqu'un saurait-il résoudre se problème ?

je pense regarder du côté ajax mais je ne vois pas vraiment comment l'implémenter
Lotharzco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 08h45   #3
Nouveau Membre du Club
 
Inscription : mars 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 56
Points : 38
Points : 38
Bonjour,

Pour le select, si $result est bien un objet DB_Result, alors :
Code :
1
2
3
 
$paysselect = & $form->addElement('select','pays','Pays');
$paysselect->loadDbResult($result, 'Pays','titre');
Si ce n'est pas le cas :
Code :
1
2
3
 
$paysselect = & $form->addElement('select','pays','Pays');
$paysselect->loadQuery($dsn, 'select * from Pays', 'Pays','titre');
Concernant ton problème de chargement, je te conseil de t'organiser comme suit :
- Chargement de ce qu'il y'a a charger (tu garde ton return $tab de coté)
- Utilisations dans différentes partie du code pour générer du HTML
- Sortie du HTML généré

Donc en gros tu appel ta fonction "select_table" avant de sortir quoi que ce soit. Mais pour ça, tout dépend de la structure de tes pages.

a+ et bon courage
Damran
Damran 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 08h59.


 
 
 
 
Partenaires

Hébergement Web