Comment faire pour lire un tableau $_POST['quartier'] - PHP - Programmation
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
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 :
|
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 )
@+
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.
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...
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.
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 ...
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 :
|
et là, tu accedes aux valeurs par
Code :
|
ou
Code :
|
si tu es dans une autre boucle
@+
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é
...
Marsh Posté le 03-08-2005 à 13:25:54
tu commences vraiment à être saoulant .... tu pourais stopper maintenant ?
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...
Marsh Posté le 03-08-2005 à 13:35:44
j'ajouterais même .... et puis non ... motivation perdue ...
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
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.
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 parce que je pensais pas que cette notation fonctionnait sous php. Par féniantise, je n'avais pas testé.
Marsh Posté le 04-08-2005 à 17:20:54
weed a écrit : |
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 « Assurance » 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
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