Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 22/12/2007, 12h41   #1
Futur Membre du Club
 
Inscription : avril 2007
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 51
Points : 17
Points : 17
Par défaut Liste déroulante dans un formulaire

Bonjour a tous, j'ai un petit soucis ( à vrai dire deux) dans un formulaire.
Je vous explique tous ca :
- bon premier problème c'est que je n'arrive pas à récupérer la valeur d'un champ d'une liste déroulante qui a etait générée dynamiquement (recherche dans une table d'une base de données) voici le code :

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
require_once("../inc.php") ;
echo "<form method=\"POST\" action=\"scripts/ajouter_enseignement.php\">
<table border=\'0\'>
	<tr><td>Libelle : </td>
	<td><input type=\"textarea\" name=\"libelle\" maxlength=\"30\"></td></tr>
	<tr><td>Promotion : </td>
	<td>".liste_deroulante_promo()."</td></tr>
	<tr><td>Enseignant responsable : </td>
	<td>".liste_deroulante_enseignant()."</td></tr>
	<tr><td>Volume horraire : </td>
	<td><input type=\"text\" name=\"volume_horraire\" maxlength=\"4\" size=\"4\"> heures</td></tr>
</table>
<input type=\"submit\" value=\"Valider\"> " ;
 
?>
function liste_deroulante_promo()
{
	connecter() ;
	$query="SELECT * FROM promotions" ;
	$result = mysql_query($query) ;
 
	echo " <select name=\"promotions\">" ;
	while ($ligne =  mysql_fetch_assoc ($result))
	{
		echo "<option value=".$ligne['id_promo'].">".$ligne['libelle']."</option>" ;
	}	
	echo "</select>\n" ;
}
Je fais un $_POST['promotions'] mais ca marche pas.

- et bon deuxième soucis c'est que ces listes sont mal positionnées dans le formulaire elle sont toutes affichées en haut de la page avant tous les libellés et autre champ statique. J'aimerais bien les afficher comme je le désire mais je n'y arrive pas, si vous avez une solutions je suis preneur

Merci d'avance,
guigui31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 14h01   #2
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
Salut,

Essaye de faire un print_r($_POST); pour voir s'il y a quelque chose dans ton tableau. Peut-être que la valeur passé est vide mais elle existe.

Pour le placement de ton champs tu peux utiliser un tableau.
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 14h06   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
La première question dépend de la deuxième car si votre liste est en dehors du formulaire, vous ne récupèrerez bien évidemment rien.

Pour la deuxième question c'est lié au fait que vous utilisez mal votre fonction (comment se fait-il d'ailleurs qu'elle est en dehors des balises <?php et ?> ?) : vous faites des echo au lieu de concaténation puis de retourner cette chaîne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function liste_deroulante_promo()
{
	connecter() ;
	$query="SELECT * FROM promotions" ;
	$result = mysql_query($query) ;
 
	$buffer = " <select name=\"promotions\">" ;
	while ($ligne =  mysql_fetch_assoc ($result))
	{
		$buffer .= "<option value=".$ligne['id_promo'].">".$ligne['libelle']."</option>" ;
	}	
	$buffer .= "</select>\n" ;
	return $buffer;
}
PS : il manque visiblement la balise </form>, ce serait bien de l'ajouter pour éviter tout problème.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 14h58   #4
Futur Membre du Club
 
Inscription : avril 2007
Messages : 51
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 51
Points : 17
Points : 17
Euh la fonction est dans un autre fichier php, mais c'est j'ai fait les modifications que vous m'avez suggéré et c'est parfait merci beaucoup.
guigui31 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 11h36.


 
 
 
 
Partenaires

Hébergement Web