Comment faire pour lire un tableau $_POST['quartier']

Comment faire pour lire un tableau $_POST['quartier'] - PHP - Programmation

Marsh Posté le 02-08-2005 à 15:32:56    

voilou j'envoie mes données via un tableau :
 

echo "<FORM name='monform' action='update_estimation.php' method='post'>
 <table>
 ";
   
 $i=0;
 while ($list = mysql_fetch_object($req))
 {
 $i=$i+1;
 
 echo "<tr>
  <td><INPUT type='text' name='quartier[$i]' value='$list->quartier' maxlength='50' size='50'></td>
  <td><input type='text' name='prix12[$i]'   value='$list->prix12'   maxlength='20' size='20'></td>
  <td><input type='text' name='prix34[$i]'   value='$list->prix12'   maxlength='20' size='20'></td>
  <td><input type='text' name='prix5[$i]'    value='$list->prix5'    maxlength='20' size='20'></td>
   </tr>";
 }
 echo "
 <table>
 <INPUT type='submit' value='Envoyer'>
 </form>
 </body></html>
 ";


 
mais comment puis je faire pour les lire ?
 
à l'époques du bon vieux temps, ils suffisiat de faire quartier[$i], mais maintenant qu'il y a $POST  :( devant, je ne suis plus quoi faire.
 
j'ai essayer :
$_POST['quartier[$i]']  
$_POST[$i]['quartier']  
 
mais cela ne marche pas

Reply

Marsh Posté le 02-08-2005 à 15:32:56   

Reply

Marsh Posté le 02-08-2005 à 15:34:58    

il faut utiliser name='quartier[]' dans ton formulaire.

Reply

Marsh Posté le 02-08-2005 à 15:49:01    

oki, c'est ce que j'ai fais, mais apres comment je recupere les données ?
 
$_POST['quartier[]]'ne marche pas

Reply

Marsh Posté le 02-08-2005 à 15:53:06    

$_POST['quartier'][$i]

Reply

Marsh Posté le 02-08-2005 à 15:56:07    

le nom final de tes champ est donc "quartier1", "quartier2" ...
 
Tu accedes donc à ses valeurs par :
 
si tu es dans une boucle avec $i comme variable

Code :
  1. $_POST['quartier'.$i]


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 02-08-2005 à 15:57:37    

j_lecruel a écrit :

$_POST['quartier'][$i]


 
bein non, puisqu'il change le nom du champ, donc le nom dans le tableau $_POST ... ca ne vas pas creer de sous tableau, à moin d'utiliser comme nom de champ resultat[] par exemple ( enfin, ca fonctionne avec les files, j'ai pas tester avec les champs text )
 
@+


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 02-08-2005 à 16:04:48    

bl@p_psx a écrit :

bein non, puisqu'il change le nom du champ, donc le nom dans le tableau $_POST ... ca ne vas pas creer de sous tableau, à moin d'utiliser comme nom de champ resultat[] par exemple ( enfin, ca fonctionne avec les files, j'ai pas tester avec les champs text )
 
@+


la solution de j_lecruel fonctionne, la tienne ne fonctionne pas. Apparrement donc c'est un tableau et non pas une variable portant des noms differents.

Reply

Marsh Posté le 02-08-2005 à 16:06:12    

Eh bien... le nom de son champ est quartier[$i]. Après validation du formulaire $quartier sera donc un tableau...

Reply

Marsh Posté le 02-08-2005 à 16:06:15    

je n'arrive pas à comprendre on ne peux pas forcer les champs en envoyant  
name='quartier[$i]' et non pas quartier[], c'est vraiment bizzare.

Reply

Marsh Posté le 02-08-2005 à 16:30:32    

j_lecruel a écrit :

Eh bien... le nom de son champ est quartier[$i]. Après validation du formulaire $quartier sera donc un tableau...


 
 
suis trop nul !  
 
en effet, echo "quartier[$i];" devient quartier[1] ...
 
bref, j'avais tord, mille excuses ...  :sleep:  
 
en passant, en mettant quartier[] comme nom de champ, ca doit avoir le meme impact, ormis le fait qu'on ne controle pas le numeros du champ de façon manuelle.
 
 
D'autre part, si tu veux forcer le nom du champ, et ne pas avoir de tableau multidimentionnel, tu dois concatener ta variable $i avec quartier ...

Code :
  1. name='quartier".$i."'


 
et là, tu accedes aux valeurs par
 

Code :
  1. $_POST['quartier1']


ou

Code :
  1. $_POST['quartier'.$i]


si tu es dans une autre boucle
 
@+


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 02-08-2005 à 16:30:32   

Reply

Marsh Posté le 03-08-2005 à 12:10:44    

weed a écrit :

[...]mais comment puis je faire [...]à l'époques [...], ils suffisiat de faire quartier[$i], [...]je ne suis plus quoi faire. [...]j'ai essayer :


 
Mais comment puis-je // à l'époque // il suffisait // je ne sais plus quoi faire // j'ai essayé
...

Reply

Marsh Posté le 03-08-2005 à 13:25:54    

tu commences vraiment à être saoulant .... tu pourais stopper maintenant ?


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 03-08-2005 à 13:32:35    

bl@p_psx a écrit :

tu commences vraiment à être saoulant .... tu pourais stopper maintenant ?


 
Tout à fait d'accord! Je ne sais pas ce que tu fais sur ce forum si tu n'arrives qu'à critiquer les personnes qui demandent de l'aide et qui n'ont pas besoin, en plus, de perdre du temps avec tes bêtises...

Reply

Marsh Posté le 03-08-2005 à 13:35:44    

j'ajouterais même .... et puis non ... motivation perdue ...


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 03-08-2005 à 16:33:54    

au passage :
 
pourquoi :
 
[code]
$i=0
while.... {
$i=$i+1;
code....
}
et non un  
$i=1;
while ... {
code ...
$i++;
}
???
$i++ est quand même plus propre que $i=$i+1, meme si apres tu le places comme ca te chante ;) :)

Reply

Marsh Posté le 03-08-2005 à 18:07:04    

oula, j'ai fais quelques fautes, j'essaie justement de ne pas écrire en sms, mais ce n'etait pas jolie.
bl@p_psx, merci pour avoir pris ma défense.  :jap:  
 
 
el_gaucho, et bien en effet tu as tout a fais raison dans ta démarche, parce que cela evite des le premier 'cout', l'affectatio, alors qu'il vaudrait mieux en effet bien choisir la valeur initial de départ de la variable et apres éxécuter le code ....
 
pourquoi je ne fais pas $i++, et bien   :whistle: parce que je pensais pas que cette notation fonctionnait sous php. Par féniantise, je n'avais pas testé.


Message édité par weed le 03-08-2005 à 18:07:36
Reply

Marsh Posté le 04-08-2005 à 17:20:54    

weed a écrit :


pourquoi je ne fais pas $i++, et bien   :whistle: parce que je pensais pas que cette notation fonctionnait sous php. Par féniantise, je n'avais pas testé.


 
 :D  :lol:  

Reply

Marsh Posté le 07-04-2012 à 17:27:43    

Bonjour à tous !
 
j'ai pu parcourir cette discussion et elle semble toucher à mon problème, mais je n'arrive pas à le régler...
 
Dans un formulaire php, je demande à quelqu'un de choisir un champ "oui ou non" en bouton radio. Pour cela je passe par une liste array. Ensuite, j'essaye d'envoyer vers une base SQL, mais je n'ai que des chiffres (ma value est un id+1, utilisé pour m'envoyer un mail de confirmation avec les infos. Ca marche, je reçois bien le choix en texte "oui" ou "non)
 
le code :
 
/* création de la liste */
 
$list['assurance']=array(" Oui", " Non" );
 
/* vérification erreur, si aucun bouton n'a été coché */
 
if($assurance=="" ){
  $erreur.="<li><span class='txterror'>Le champ &laquo; Assurance &raquo; n'a pas été défini.</span>";
  $errassurance=1;
 }  
 
/* envoi de l'email /*
 
...
$corps.="Assurance : ".$list['assurance'][$assurance]."\n";
...
 
/* récupération des données du formulaire /*
$assurance=$_POST['assurance'];
 
/* envoi vers la base SQL /*
 
$query = "INSERT INTO $table (assurance) VALUES (\"$assurance\" )
$resultat = mysql_query($query)
 or die("L'insertion a echouée car ". mysql_error() ."." );  
 
/* Formulaire */
<fieldset>
<legend>Assurance</legend>
<label for="assurance">Je possède une assurance RC & accident*</label>
<table border='0' cellspacing='5' cellpadding='0'>
<? for($id=0;$id<count($list['assurance']);$id++){
if($id==$assurance){$ct="";}
print("<tr><td><input ".$ct." type='radio' name='assurance' value=".$id." border='0'></td><td>".$list[assurance][$id]."</td></tr>" );
unset($ct);
}?></table>
</fieldset>
</form>
<? } ?>
 
 
Des idées de la formule POST pour récupérer la même donnée que celle envoyée par email ? Car en SQL je reçois la valeur et par email j'arrive à avoir le texte ?
 
P.S : j'ai le même problème avec les checkbox et les menu déroulants... ^^
 
Merci d'avance

Reply

Sujets relatifs:

Leave a Replay

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