Page 1 sur 1

formulaire modification de plusieurs valeurs d'un coup

Posté : 07 juin 2011, 15:09
par olivierg
Bonjour,

J'ai une question à propos d'un soucis de formulaire dans une boucle, ça parraît "simple" mais je n'arrive malgré tout pas à savoir comment faire.

Mon problème est le suivant : j'ai un listing d'une table et de champs que je récupère dans une base MySQL
j'aimerais modifier plusieurs champs d'un coup pour les entrées de ce listing grâce, par exemple, à des boutons de type radio.
et donc un seul bouton modifier en bas de la page.

exemple en screen :

Image

exemple ici (j'ai mis un exemple tout bête pour illustrer mon soucis, ma base réelle étant bien plus complexe) :

on prend l'exemple d'une base comme ça :

Code : Tout sélectionner

nom valeur2 nom01 toto nom02 tata nom03 toto nomN toto nomAleatoire tata
code pour la génération du formulaire (ce n'est pas parfait avec tous ces echos, c'est simplement pour illustrer rapidement le soucis)
echo '<table border=1>';
echo '<form method="post" action="page.php">';

$requete_listing = 'select * from table';
$exec_req = mysql_query($requete_listing);

while($data = mysql_fetch_assoc($exec_req)) {
echo '<tr>';
echo '<td>';
echo $data['valeur1'];
echo '<input type="hidden" name="namev1" value="'.$data['valeur1'].'">'
echo '</td>';
echo '<td>';
   if ($data['valeur2'] == "toto") {
echo '<input type="radio" name="namev2" value="toto" CHECKED> toto<br>';               // erreur volontaire ici avec le name, voir plus bas
echo '<input type="radio" name="namev2" value="tata"> tata ';
   } else {
echo '<input type="radio" name="namev2" value="toto"> toto<br>';
echo '<input type="radio" name="namev2" value="tata" CHECKED> tata ';
   }
echo '</td>';
echo '</tr>';
 }

echo '<tr>';
echo '<td colspan=2 align="center">';
echo '<input type="hidden" name="commented" value="set">';
echo '<input type="submit" name="submit" value="valider">';
echo '</td>';
echo '</tr>';
echo '</form>';
echo '</table>';
seulement ici, dans l'input, le "name" est toujours le même dans tous les cas.
j'ai donc testé de générer une variable "dynamique" si je puis dire, qui fonctionne comme ça (je met simplement le "contenu" du premier champ dans le nom de variable afin que celui-ci soit unique.. mais ce n'est peut-être pas la meilleure solution lol) :
echo '<input type="radio" name="namev2_'.$data['valeur1'].'" value="0" CHECKED> toto<br>';
qui me fera des variables dynamiques comme : "namev2_nom01", "namev2_nom02" etc..
pareil pour namev1.

mon soucis est donc le suivant : comment récupérer ces variables après ? (et surtout, est-ce la bonne méthode ?? j'imagine qu'il y a plus propre non ? ou surtout plus simple ?. je fais peut-être n'importe comment..)

pour la validation de mon formulaire (en haut de ma page par ex), j'essaye donc de récupérer les variables, mais comment faire ? (sachant que je ne connais PAS le contenu de la fin de la variable générée toute seule, et donc je ne connais pas le nom complet de la variable)
// si le formulaire est rempli
if (isset($_POST['commented']) == "set") {
// je recupere les variables
-> c'est ici que ca coince.. comment récupérer les variables générées dynamiquement, afin de regénérer une boucle pour effectuer mes modifications en base 
(UPDATE table SET namev2="truc" WHERE namev1="namev1_MACHIN" xN)
}
voilà, j'espère que je m'explique clairement
peut-être serait-il plus simple d'utiliser des checkbox ? et/ou des tableaux ?

Re: formulaire modification de plusieurs valeurs d'un coup

Posté : 08 juin 2011, 14:46
par olivierg
personne n'aurait une petite idée par hasard ?

Re: formulaire modification de plusieurs valeurs d'un coup

Posté : 08 juin 2011, 14:53
par Mazarini
Bonjour,

Pour ce genre de problème on utilise des noms de champ de type champ[] dans les inputs html.
Cela permet de traiter le retour du formulaire avec des $_POST['champ'][$i]

Re: formulaire modification de plusieurs valeurs d'un coup

Posté : 09 juin 2011, 17:22
par olivierg
ahh donc on utilise des tableaux multidimensionnels dans les noms de champs ?

je comprend mieux, merci pour l'info

si quelqu'un a un exemple ça m'arrangerait, mais je devrais pouvoir me débrouiller déjà avec cette info, thanks !

Re: formulaire modification de plusieurs valeurs d'un coup

Posté : 09 juin 2011, 18:27
par moogli
echo '<input type="radio" name="namev2[]" value="0" CHECKED> toto<br>';
pareil pour le reste :)

pour le traitement c'est mis plus haut ;)


@+