[PHP] Récupération des valeurs d'un formulaire

Récupération des valeurs d'un formulaire [PHP] - PHP - Programmation

Marsh Posté le 12-04-2002 à 12:58:40    

Salut,
j'ai encore un PETIT souci de fignolage...
 
J'ai un formulaire qui est le suivant :
 
<FORM ACTION=\"ch.php?nombre_mois=2<\" METHOD=\"POST\">
<INPUT TYPE=\"checkbox\" NAME=\"m1\" VALUE=\"0203\">Mars 2002<BR>
<INPUT TYPE=\"checkbox\" NAME=\"m2\" VALUE=\"0204\">Avril 2002<BR>
<INPUT TYPE=\"submit\" NAME=\"envoi\" VALUE=\"OK\">
</FORM>

 
dans mon formulaire j'ai defini deux NAME pour les cases à cocher qui s'appellent 'm1' et 'm2'
je les récupère dans le php avec  
 
      $mois[1] = $HTTP_POST_VARS["m1"];  
      $mois[2] = $HTTP_POST_VARS["m2"];

 
mais j'aimerais savoir s'il y a un moyen d'effectuer cette opération une seule fois, placée dans une boucle limitée par la variable $nombre_mois, pour automatiser le truc en fonction du nombre de mois qui seront dispo dans le formulaire (je ne compte pas me limiter à Mars et Avril).
J'ai bien essayé de remplacer la récupération par      
$mois[ $i  ] = $HTTP_POST_VARS[ $i ];
 
mais il ne veut pas, il veut le vrai nom de la valeur du formulaire c'est à dire "m1" par exemple
 
 
comment faire ? :jap: thanks :jap:

 

[jfdsdjhfuetppo]--Message édité par flyjodel--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 12-04-2002 à 12:58:40   

Reply

Marsh Posté le 12-04-2002 à 13:08:03    

en fait ma question revient à comprendre comment marchent les variables $HTTP_POST_VARS.
 
C'est un tableau visiblement, mais non accessible par l'indexation numérique des différents éléments, seulement par la désignation "en toutes lettres" de ces élémens...
 
Suis-je clair? je l'espère, merci de votre aide !

Reply

Marsh Posté le 12-04-2002 à 13:13:58    

bin en fait perso j'ai pas a utiliser $HTTP_POST_VARS, les variables sont transmises a la page de resultat automatiquement puiskelles font partie du <form>

Reply

Marsh Posté le 12-04-2002 à 13:20:34    

mais comment fais-tu comment pour que le nombre de variables ne soit pas défini "en dur" mais varie selon le nombre de données dispo dans une table SQL par exemple?
 
(je ne sais pas si la précision est utile mais j'utilise la meme page de code avec un if pour l'affichage du résultat et le formulaire lui-meme):
 
le code complet au cas où :  
fichier ch.php
<?php
 
 include("inc_fonction.php" ) ;
 $utilisateur = $PHP_AUTH_USER ;
 echo 'salut'.$utilisateur.'<br>';
 // récupération dans des variables PHP des valeurs  
 // saisies dans le formulaire en utilisant le
 // tableau $HTTP_POST_VARS ou $HTTP_GET_VARS
 $mois[1] = $HTTP_POST_VARS["m1"];
 $mois[2] = $HTTP_POST_VARS["m2"];
 
 if (isset ($mois[1]) or isset ($mois[2])) {
 
  // recherche l'adresse email du connecté  
  $qui = adresse_email($utilisateur) ;
   
  $i = 1 ;
  while ( $i <= $nombre_mois ) {
   // envoye le mail contenant la(les) page(s) demandée(s)
   if ( isset ( $mois[$i] )) {
    email_document($qui,"envoi numéro".$i,$mois[$i].".gif" ) ;
    }
   $i ++ ;
   }
  }
 
 echo '<hr>*'.$mois[1].'* et *'.$mois[2].'* vous ont été envoyés par mail à l\'adresse '.$qui ;
 echo '<br>' ;
 
 
 
// ensuite, on utilise les variables dans les traitements
// et éventuellement dans le réaffichage du formulaire
 
if (!isset ($v1) and !isset ($v2))
{
print ("
<HTML>
<HEAD><TITLE>Saisie</TITLE></HEAD>
<BODY>
sélectionne les mois qui t'intéressent et appuye sur OK<br>
<br>
<FORM ACTION=\"ch.php?nombre_mois=2\" METHOD=\"POST\">
<INPUT TYPE=\"checkbox\" NAME=\"m1\" VALUE=\"0203\">Mars 2002<BR>
<INPUT TYPE=\"checkbox\" NAME=\"m2\" VALUE=\"0204\">Avril 2002<BR>
<INPUT TYPE=\"submit\" NAME=\"envoi\" VALUE=\"OK\">
</FORM>
 
</BODY>
</HTML>
" ) ;
}
?>

 

[jfdsdjhfuetppo]--Message édité par flyjodel--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 12-04-2002 à 13:27:50    

Goueg a écrit a écrit :

bin en fait perso j'ai pas a utiliser $HTTP_POST_VARS, les variables sont transmises a la page de resultat automatiquement puiskelles font partie du <form>  




 
je comprends bien ce que tu veux dire, mais je me demande dans ce cas si on peut transmettre les valeurs du formulaire directement sous forme de tableau ?
 
il faudrait alors que le formulaire soit defini avec un truc du genre :
<INPUT TYPE=\"checkbox\" NAME=mois[$i] VALUE=\"0203\">Mars 2002<BR>
est-ce bien raisonnable?
 
ps : au fait si je semble un peu lourd, c'est que j'apprends sur le tas et je me rends bien compte qu'un apprentissage plus "structuré" du PHP eut été profitable, mais je n'ai pas trop le temps et j'essaye parfois de sauter des étapes, c'est pourquoi je mets tout le code pour me faire bien comprendre, et évidemment je ne demande pas qu'on le rédige à ma place ! juste me mettre sur la voie ou m'éviter des erreurs grossières,
merci encore :jap:

 

[jfdsdjhfuetppo]--Message édité par flyjodel--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 12-04-2002 à 15:38:28    

Fait avec nombre_mois
 
$i=1
while($i =<
(ou <= ché pu) $HTTP_GET_VARS['nombre_mois'])
$mois[$i] = $HTTP_POST_VARS['m'.$i];

 

[jfdsdjhfuetppo]--Message édité par Je@nb--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 12-04-2002 à 15:39:11    

PHP 4.1.x (4.2) = $_GET et $_POST

Reply

Marsh Posté le 12-04-2002 à 21:56:26    

ah je ne connaissais pas GET_VARS ! merci pour le truc, c'est super !
à bientôt, et merci encore !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed