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 16/11/2010, 00h07   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
Par défaut aide formulaire php

bonsoir tout le monde.
Bon, je suis un débutant et j'ai besoin d'aide j'ai un petit exercice à réaliser "calcule simple addition soustraction multiplication ... de 2 nombres":
et je veux que la même page fait le traitement "le calcule" le problème lorsque je saisie des valeurs et j'affiche le résultat rien ne s affiche ????.
voila mon 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php 
if(isset($_POST['hide']))
{
 
	//result();
	switch($_POST['submited'])
	{
		case "addition":
			$resultat=$_POST['t1']+$_POST['t2'];
			break;
			case "soustraction":
			$resultat=$_POST['t1']-$_POST['t2'];
			break;
			case "division":
			$resultat=$_POST['t1']/$_POST['t2'];
			break;
			case "multiplication":
			$resultat=$_POST['t1']*$_POST['t2'];
			break;
	}
 
 
}
else 
{
 
	$resultat=0;
echo "<fieldset>";
echo "<legend>";
echo "<font color='red' size=15>";
echo "Calculatrice";
echo ("</font>");
echo "</legend>";
echo "<form  method=\"post\" action=\"<php? echo $_SERVER[PHP_SELF]; ?>\" >";
echo "<label>Nombre 1 :</label><br/>";
echo "<input type=\"text\" name='t1'/><br/>";
echo "<label>Nombre 2 :</label><br/>";
echo "<input type=\"text\" name='t2'/><br/>";
echo "<label>Resultat :</label><br/>";
echo "<input type=\"text\" name=\"res\" value=\"$resultat\"/><br/>";
 
echo "<input type=\"submit\" name='submited' value='addition'/>";
echo "<input type=\"submit\" name='submited' value='soustraction'/>";
echo "<input type=\"submit\" name='submited' value='mulitiplication'/>";
echo "<input type=\"submit\" name='submited' value='division'/>";
echo "<input type=\"submit\" name='submited' value='puissance'/>";
echo "<input type=\"hidden\" name='hide' value='v'/>";
echo "</form>";
echo "</fieldset>";	
}
 
?>
aminefathi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 01h01   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 936
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 936
Points : 4 935
Points : 4 935
Bonsoir

1 - Tu as pris le temps de lire le Sticky sur PHP pour les débutants ?
2 - Evite le style SMS s'il te plait
3 - Ton code dans une balise [code]

Ton problème vient du formulaire:

Code :
echo "<form method=\"post\" action=\"<php? echo $_SERVER[PHP_SELF]; ?>\" >";
Ici <?php est considéré comme une chaine de caractère donc la page appellée est
Code :
/<php? echo $_SERVER[PHP_SELF]; ?>
alors qu'on voulait la page en cours

Le plus simple pour toi est de retirer l'attribut 'action' de ta balise form, ainsi la page courante sera appellée lors du submit du formulaire.
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 09h21   #3
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Benjamin tu n'a pas tord, mais permet moi d'apporter une petite précision.
Code :
echo "<form  method=\"post\" action=\"".$_SERVER[PHP_SELF]."\" >";
En effet, inutile de précisez au serveur HTTP que tu lui passe du php puisqu'il le sait déjà
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 10h41   #4
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Citation:
Envoyé par riete Voir le message
Benjamin tu n'a pas tord, mais permet moi d'apporter une petite précision.
Code :
echo "<form  method=\"post\" action=\"".$_SERVER[PHP_SELF]."\" >";
En effet, inutile de précisez au serveur HTTP que tu lui passe du php puisqu'il le sait déjà
Je me permets un passage supplémentaire pour une question de perfos et de lisibilité :
Code :
echo '<form  method="post" action="'.$_SERVER[PHP_SELF].'" >';
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne.
Le bouton ne masse pas les pieds, mais ça aide la communauté.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 10h56   #5
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 244
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 244
Points : 1 500
Points : 1 500
Je me permets d'ajouter qu'il n'est meme pas necessaire de passer par php pour ca
Code php :
echo '<form method="POST" action="#">';

je crois meme qu'on n'est pas oblige de mettre le #
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 11h02   #6
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Ah oui effectivement, c'est bien vu.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne.
Le bouton ne masse pas les pieds, mais ça aide la communauté.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 11h03   #7
Membre éclairé
 
Avatar de Charvalos
 
Homme
Étudiant
Inscription : juin 2010
Messages : 140
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 19
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 140
Points : 336
Points : 336
Envoyer un message via MSN à Charvalos Envoyer un message via Skype™ à Charvalos
Citation:
Envoyé par Doksuri Voir le message
Je me permets d'ajouter qu'il n'est meme pas necessaire de passer par php pour ca
Code php :
echo '<form method="POST" action="#">';

je crois meme qu'on n'est pas oblige de mettre le #
En effet, ceci suffit amplement :

Code php :
1
2
 
echo '<form method="POST">';

Charvalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 11h06   #8
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Euh là je mets mon veto, il me semble que la norme demande l'attribut action comme obligatoire même si vide. A confirmer avec un passage au validator du W3C.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne.
Le bouton ne masse pas les pieds, mais ça aide la communauté.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 14h54   #9
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Je confirme l'attribut 'action' est requis.

Alléger le code ok, maiiiis ..... pas trop quand même
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 15h35   #10
Invité de passage
 
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
Par défaut php

merci Mrs .
j ai essayé toutes les propositions mais rien ne s affiche.
lorsque je valide pour voir le résultat rien ne s affiche.est ce que je dois recopié les memes instructions de la close else dans la close if ?????
aminefathi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 16h15   #11
Invité de passage
 
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
Par défaut php

ah j ai oublié est ce que je dois copier et coller le code qui se trouve dans le meme bloc de la close else dans la close if si c est le cas c est lourd par exemple si en a des pages contenant un code tres important ??????????
aminefathi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 16h40   #12
Membre éclairé
 
Avatar de Charvalos
 
Homme
Étudiant
Inscription : juin 2010
Messages : 140
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 19
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 140
Points : 336
Points : 336
Envoyer un message via MSN à Charvalos Envoyer un message via Skype™ à Charvalos
Oui, dans ton if, tu n'affiches pas le résultats. Tu ne fais que faire les opérations.

Donc, si tu veux garder la même mise en page qu'avant de faire les opération, tu est obligé de remettre le code de ton formulaire contenu dans ton else.

Après, tu peux créer une fonction qui s'appellereait, p.ex, afficheFormulaire.

Charvalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 17h06   #13
Invité de passage
 
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
Par défaut php

merci Charvalos.
normalement j envoi les donnees via la methode post a la meme page c est a dire qu il ne faut pas tapez le meme code pour generer la meme page.????
je sais si je copie le code de la close else dans la close if sa va marcher.
bon voila je veux entrer 2 nombres choisir l operation les donnees du formulaire seront envoyer par la methode poste au scripte specifié dans l attribut action ici j ai mis $_SERVER[PHP_SELF] c est a dire que le meme scripte va traiter les donnees envoyer pourquoi il faut crée un nouveau formulaire qui contient le resultat avec les valeurs deja saisie moi je veux que la page ne change plus est je veu voir comme resultat si je fait l addition de deux nombres :


n1:
_____________
|2 |
|___________|
n2:
_____________
|3 |
|___________|

resultat:
_____________
|5 |
|___________|
aminefathi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 19h34   #14
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
?

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
<?php 
if(isset($_POST['hide']))
{
  $nombre_un = $_POST['t1'];
  $nombre_deux = $_POST['t2'];
	//result();
	switch($_POST['submited'])
	{
		case "addition":
			$resultat=$nombre_un+$nombre_deux;
			break;
			case "soustraction":
			$resultat=$nombre_un-$nombre_deux;
			break;
			case "division":
			$resultat=$nombre_un/$nombre_deux;
			break;
			case "multiplication":
			$resultat=$nombre_un*$nombre_deux;
			break;
	}
 
 
}
else 
{
 $resultat = 0;
 $nombre_un = '';
 $nombre_deux = '';
}
?>	
<fieldset>
<legend>
  <font color='red' size=15>Calculatrice</font>
</legend>
<form  method="post" action="<php? echo $_SERVER['PHP_SELF']; ?>" >
<label>Nombre 1 :</label><br/>
<input type="text" name='t1' value="<?php echo $nombre_un ?>"/><br/>
<label>Nombre 2 :</label><br/>
<input type="text" name='t2' value="<?php echo $nombre_deux ?>"/><br/>
<label>Resultat :</label><br/>
<input type="text" name="res" value="<?php echo $resultat ?>"/><br/>
<input type="submit" name='submited' value='addition'/>
<input type="submit" name='submited' value='soustraction'/>
<input type="submit" name='submited' value='mulitiplication'/>
<input type="submit" name='submited' value='division'/>
<input type="submit" name='submited' value='puissance'/>
<input type="hidden" name='hide' value='v'/>
</form>
</fieldset>
N'oublies surtout pas de jetter un oeil sur les tutoriels suivant :
- PHP : Le tutoriel pour grands débutants pressés
- Les formulaires et PHP5
- PHP et les formulaires
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/11/2010, 19h50   #15
Invité de passage
 
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
merciiiiiiiiii
aminefathi 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 17h43.


 
 
 
 
Partenaires

Hébergement Web