[php] recuperer une variable

Fermé
ego - 20 déc. 2007 à 22:16
 le père - 21 déc. 2007 à 09:45
Bonjour,
je bloque sur 1 pb basique.
dans 1 table, je fais un select, un bouton submit, et j arrive pas a recuperer ma variable mois (que la feuille appelée soit text ou autre.php)
voici le machin pour voir ou ca bloque
merci d avance
<table>
<form action="text.php" method="post">

<tr>
<td>
<Select name="mois" size="5">
<option value="janvier"> JANVIER
<option value="fevrier"> FEVRIER
<option value="mars"> MARS
<option value="avril"> AVRIL
<option value="mai"> MAI
<option value="juin"> JUIN
<option value="juillet"> JUILLET
<option value="aout"> AOUT
<option value="septembre"> SEPTEMBRE
<option value="octobre"> OCTOBRE
<option value="novembre"> NOVEMBRE
<option value="decembre"> DECEMBRE
</select>
</td>

<?php
$y=date("Y");
$yp=($y)-1;

echo '<td><input type="checkbox" name="an_indem" value = "'.$yp.'" > '.$yp.'<br>';

echo "<br>";
echo '<input type="checkbox" name="an_indem" value = "'.$y.'" > '.$y.'<br></td></tr>';
echo '<tr><td><input type="submit" value="Continuer"></td></tr><tr><td>';
echo 'mois_ec'.($_post['mois']).'</td><td>mois_ec'.$mois.'</td></tr>' ;
?>
</form> </table><table>

9 réponses

Bonsoir,

Et il y a quoi dans text.php ?
0
rien de plus sinon le head, meta, body etc...
je voudrai juste voir ma selection ;o((((
0
Remarque : tu as un <Table> en trop à la fin

Pour récupérer les infos passées par POST c'est $_POST et non pas $_post

De plus, au premier appel de ce script $_POST n'est a priori pas défini
Dans tous les cas, et sauf si tu le fais dans une partie que tu ne montres pas, la variable $mois n'est jamais définie, tu ne peux pas l'afficher.
0
exact le pere, le ne savais pas que sur la nouvelle version php, on devait definir les variables (comme en vba)
quelle syntaxe utilise t on pour declarer $mois as text en php?
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le ne savais pas que sur la nouvelle version php, on devait definir les variables
Il ne s'agit pas d'une nouveauté.
On n'a pas besoin de définir les variables comme on fait une déclaration en C ou en VBA. Il y a seulement que faire echo $mois quand $mois n'a jamais été affecté n'a aucun sens. Pour éviter l'erreur, tu as juste à faire (par exemple) $mois='' avant d'essayer de l'afficher.

Note que ça ne change rien au fait que dans ton script, on se demande bien à quoi sert cette variable dans laquelle on ne vient jamais écrire
0
dans <select name='mois' etc... la variable est bien $mois (issue du name non??? ou je dois revoir mes maigres connaissances)
mon script voudrait afficher les mois dans une liste deroulante, selectionner une annee, puis, a partir de ces 2 donnees, par la fonction mktime, recuperer les jours du mois selectionne, de 1 a X, creer 1 tableau en colorant les samedi et dimanche puis inscrire les données dans 1 fichier txt.
rien de bien sorcier tu vois mais je butte sur ce foutu $mois ou $_POST ['mois'] selectionne plus haut.
desolé de paraitre simpliste :o)
@+
0
dans <select name='mois' etc... la variable est bien $mois (issue du name non??? ou je dois revoir mes maigres connaissances)
Désolé, tu dois revoir tes maigres connaissances

Quand dans un formulaire avec la méthode POST, tu définis un champ avec name="mois" , cela n'a aucun rapport avec une variable $mois.
Cela signifie que quand le visiteur aura envoyé son formulaire, le script PHP appelé par le formulaire disposera d'une variable $_POST['mois']. Libre à toi, si tu le veux, de faire $mois=$_POST['mois'] pour alléger l'écriture si tu t'en sers 10 fois.
Attention, cette variable $_POST['moi'] n'existe qu'une fois que le client a envoyé son formulaire. La première fois que tu affiches le formulaire, $_POST['mois'] n'existe pas et c'est une faute d'essayer de l'afficher ou de l'affecter à une autre variable. Tu auras un message d'erreur avec ton script tel qu'il est actuellement écrit.
Tu peux tester si une variable existe avec la fonction isset
Ce n'est pas parce que tu as fait echo 'mois_ec'.($_post['mois']).'</td><td>mois_ec'.$mois.'</td></tr>' ; à la fin de ton formulaire que ça va marcher : cette ligne du script n'attend pas que le client ait envoyé le formulaire pour s'exécuter.
0
merci le pere

j ai bien appliqué ce que tu m as conseillé :
post en majuscule
comprendre la methode de travail du post
ca marche

tu es un pere pour moi ;o)

@+
0
tu es un pere pour moi ;o)
Va en paix, mon fils ;o)

Sérieusement, si j'ai pu t'apprendre quelque chose, ça me console de tous ces !#&* qui attendent seulement qu'on leur donne un truc tout fait.

Bonne programmation.
0