Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 13/10/2011, 15h47   #1
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Par défaut Problème sur select liste déroulante

Bonjour

Sur une page Essai_SE.php je créé une liste déroulante comme ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form id="formulairetest" method="post" action="Essai_SE.php">
		<select name="employe">
		<option value="2">Manh-linh</option>
		<option value="3">Titouam</option>
		<option value="4" selected>Antoine</option>
		<option value="5">Morgane</option>
		</select>
	<?php 
         if(isset($_POST['employe'])) 
         { 
         echo htmlentities($_POST['employe']); 
         } 
	?>
</form>
Je n'ai pas l'affichage de ma sélection
j'ai fait une erreur de code ?
Merci pour vos réponses
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 16h02   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
j'ai fait une erreur de code ?
Dans le code, non, pas vraiment, dans la conception, oui, parce que tu refuses (comme dans tes discussions précédentes) de comprendre que PHP agit coté serveur et qu'il ne peut pas prédire l'avenir : à savoir quels éléments l'utilisateur va sélectionner !

Je t'invite vivement à lire quelques tutoriels sur les échanges client serveur pour comprendre quand intervient PHP et quand peuvent être pris en compte les choix de l'utilisateur...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 12h37   #3
Membre habitué
 
Avatar de rinuom99
 
Étudiant
Inscription : août 2007
Messages : 238
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 238
Points : 125
Points : 125
Envoyer un message via MSN à rinuom99
pour voir l'affichage tu dois ajouter un bouton submit pour valider le formulaire comme suite

Citation:
<input type="submit" name="Valider">
ou utiliser la technologie AJAX et je te conseil le tutoriel suivant ici
__________________
Si tu peux voir détruit l'ouvrage de ta vie.
Et sans dire un seul mot te mettre à rebâtir,
Tu seras un Homme, mon fils.
rinuom99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 17h49   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 244
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 244
Points : 1 566
Points : 1 566
Ou alors si tu veux déclencher la soumission du formulaire sans bouton submit, en sélectionnant simplement une option, tu peux faire ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if (isset($_POST['selection'])) 
{
echo htmlentities($_POST['selection']);
}
?>
<form action="#" method="post">
<select name="selection" onchange="this.form.submit()">
<option value="0">Choisissez...</option>
<option value="1">un</option>
<option value="2">deux</option>
<option value="3">trois</option>
<option value="4">quatre</option>
</select>
</form>
Dans ce cas c'est l'instruction onchange="this.form.submit()" qui soumet le formulaire (si javascript est activé).
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 21h51   #5
Futur Membre du Club
 
Développeuse Web
Inscription : octobre 2011
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Développeuse Web

Informations forums :
Inscription : octobre 2011
Messages : 17
Points : 18
Points : 18
Comma l'a bien dit Bovino, php ne peut pas prédire l'avenir... ta page se charge sans rien de selectionné et là, ton PHP a DEJA été exécuté... C'est pas parce qu'il est écrit après dans ton code qu'il s'executera après. Là ton $_POST est vide puisque rien n'a été envoyé.

la solution de ABCIWEB est nikel (mais heu le onChange devrait pas plutôt être dans le select pas dans l'option ?) mais sinon, si tu veux juste afficher le choix, pourquoi utiliser PHP ? Tu peux aussi bien faire ça en javascript en récuperant ta valeur et en l'affichant dans une div. Un truc comme par ex:

Code :
1
2
3
4
5
6
7
8
9
10
<form id="formulairetest" method="post" action="Essai_SE.php">
		<select name="employe" onchange="document.getElementById('selected_item').innerHTML = this.value">
		<option value="2">Manh-linh</option>
		<option value="3">Titouam</option>
		<option value="4" selected>Antoine</option>
		<option value="5">Morgane</option>
		</select>
</form>
 
<div id="selected_item"></div>
Note que de toutes façons là ça va afficher 2, 3, 4, 5 et pas les noms hein
mazamazine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 22h42   #6
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Merci pour ta réponse
Mais j'ai besoin de récupérer le selected_item pour le mettre en variable, car après je dois faire des requetes Sql sur une BD pour extraire des infos.
Je ne vois pas comment récuperer le selected_item
Encore merci pour votre aide
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 23h59   #7
Futur Membre du Club
 
Développeuse Web
Inscription : octobre 2011
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Développeuse Web

Informations forums :
Inscription : octobre 2011
Messages : 17
Points : 18
Points : 18
Bien alors le seul moyen est de soumettre le formulaire et de l'envoyer à une page PHP qui traite les données reçues du formulaire (soit les variables superglobales contenues dans $_POST).

Si tu as besoin de NE PAS changer/recharger la page, il te faut du AJAX, sinon juste submit et envoi à traitement_formulaire.php par ex. ou encore à la même page si tu as besoin de recharger la même, comme dans l'exemple de ABCIWEB.
mazamazine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 08h19   #8
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Non je n'ai pas besoin de recharger la page
j'ai regarder le tuto Ajax mais je n'arrive pas à récupérer la sélection
j'ai fait ce code, mais après je ne sais plus

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
<script type='text/JavaScript'>
	 		function getXhr(){
                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
                   return xhr
			}
 
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(){
			var xhr = getXhr()
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						alert(xhr.responseText);
					}
				}
				xhr.open("GET","ajax.php",true);
				xhr.send(null);
			}
</script>
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 09h29   #9
Membre confirmé
 
Homme Lionel Chaumeau
Développeur Web
Inscription : octobre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Lionel Chaumeau
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2011
Messages : 75
Points : 264
Points : 264
Bonjour Vanessa
Citation:
Envoyé par Vanessa48 Voir le message
Non je n'ai pas besoin de recharger la page
j'ai regarder le tuto Ajax mais je n'arrive pas à récupérer la sélection
j'ai fait ce code, mais après je ne sais plus
Comment dire ...
d'abord, dans ton script, tu as deux fonctions uniquement... si tu ne les appelles pas, elles sont en mémoire mais ne s’exécutent jamais... il faut que tu les appelles à un moment ou à un autre dans ton code...

ensuite, si tu veux envoyer la valeur de ton option sélectionnée, il faut la passer (ou la récupérer) dans ta fonction go() (celle qui envoie tes données côté serveur) et l'envoyer à ta page ajax.php sous une forme "?clé=valeur")
comme c'est écrit dans le tuto...
ex:
Code :
xhr.open("GET","ajax.php?cle=valeur",true);
Enfin, je ne sais pas quel est ton code d'ajax.php, mais si tu veux faire un alert de la réponse de l'appel Ajax (ligne 29 de ton code), il faut que la page ajax.php retourne quelque chose
(du style
Code :
echo "Coucou je reviens du serveur";
en fin de ton code php)...
Cela t'aide-t-il à comprendre ?
kalimukti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 17h02   #10
Futur Membre du Club
 
Développeuse Web
Inscription : octobre 2011
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Développeuse Web

Informations forums :
Inscription : octobre 2011
Messages : 17
Points : 18
Points : 18
Moi je comprend rien à ce code ^^
Pour AJAX j'utilise une fonction que je trouve plus courte et plus lisible avec un appel xmlhttp.open au lieu de xhr.open... (Mais pour être franche xhr je sais pas ce que c'est héhé)

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
function charge_ajax(str)
{
 
if (str=="")
  {
  document.getElementById("contenu_dynamique").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("contenu_dynamique").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open('GET', "ajax.php?ma_variable="+str);
xmlhttp.send();
}
Dans cet exemple il te faut une div appelée "contenu_dynamique" dans laquelle sera le contenu renvoyé par ajax.php et évidemment, l'info que tu veux envoyer à ajax.php doit être l'argument lors de l'appel à la fonction...
mazamazine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h05.


 
 
 
 
Partenaires

Hébergement Web