[RESOLU] Probleme de formulaire avec des case a cocher

Petit nouveau ! | 8 Messages

01 août 2012, 10:21

Bonjour,

je me permet un petit post sur un probleme qui doit pas etre compliqué a solutionner :)
J'ai une page avec un formulaire qui demande nom prénom, adresse.... et qui demande de cocher une ou des cases a la fin avec une selection de dates par ville. cette page fonctionne bien et je dois la modifier en mettant deux dates par ville, donc tout est doublé. J'ai doublé mes cases pas de problemes dans le fichier PHP et le fichier du formulaire mais il me donne toujours les 2 dates de la premiere ville lorsque je recois le résultat :s

pourriez vous m'aider ?

Ci après le code original de l'index.php extrait avec les cases a afficher

Code : Tout sélectionner

<tr> <td>Bordeaux<BR><input id="lieu_formation_1" type="checkbox" name="lieu_formation[0]" value="1">Prems 1<span> (10 janvier)</span></td> <td><BR><input id="lieu_formation_2" type="checkbox" name="lieu_formation[1]" value="1">Prems 2<span> (28 février)</span></td> </tr> <tr> <td><input id="lieu_formation_3" type="checkbox" name="lieu_formation[2]" value="1">Limoges<span> (20 mars)</span></td> <td><input id="lieu_formation_4" type="checkbox" name="lieu_formation[3]" value="1">Toulouse<span> (12 janvier)</span></td> <td><input id="lieu_formation_5" type="checkbox" name="lieu_formation[4]" value="1">Reims<span> (1er mars)</span></td> <td><input id="lieu_formation_6" type="checkbox" name="lieu_formation[5]" value="1">Dijon<span> (27 mars)</span></td> </tr> <tr> <td><input id="lieu_formation_7" type="checkbox" name="lieu_formation[6]" value="1">Nantes<span> (26 janvier)</span></td> <td><input id="lieu_formation_8" type="checkbox" name="lieu_formation[7]" value="1">Lyon<span> (6 mars)</span></td> <td><input id="lieu_formation_9" type="checkbox" name="lieu_formation[8]" value="1">Besançon<span> (28 mars)</span></td> </tr> <tr> <td><input id="lieu_formation_10" type="checkbox" name="lieu_formation[9]">Paris<span> (31 janvier)</span></td> <td><input id="lieu_formation_11" type="checkbox" name="lieu_formation[10]">Marseille<span> (7 mars)</span></td> <td><input id="lieu_formation_12" type="checkbox" name="lieu_formation[11]">Nancy<span> (29 mars)</span></td> </tr> <tr> <td><input id="lieu_formation_13" type="checkbox" name="lieu_formation[12]">Orléans<span> (2 février)</span></td> <td><input id="lieu_formation_14" type="checkbox" name="lieu_formation[13]">Montpellier<span> (8 mars)</span></td> <td><input id="lieu_formation_15" type="checkbox" name="lieu_formation[14]">Strasbourg<span> (30 mars)</span></td> </tr> <tr> <td><input id="lieu_formation_16" type="checkbox" name="lieu_formation[15]">Amiens<span> (3 avril)</span></td> <td><input id="lieu_formation_17" type="checkbox" name="lieu_formation[16]">Lille<span> (4 avril)</span></td> <td><input id="lieu_formation_18" type="checkbox" name="lieu_formation[17]">Clermont<span> (18 avril)</span></td> </tr> <tr> <td><input id="lieu_formation_19" type="checkbox" name="lieu_formation[18]">Rennes<span> (22 mai)</span></td> <td></td> <td></td> </tr> <tr>
Ci après le code original de registerform.php extrait les correspondances de case

Code : Tout sélectionner

function write_property($property) { return (isset($_POST[$property]) && !empty($_POST[$property]) && getPropertyName($property) != $_POST[$property]) ? '<b>' . getPropertyName($property) . ' : </b> ' . $_POST[$property] . '<br/>' : ''; } if (empty($return['msg'])) { $formations = array('Bordeaux - Prems 1', 'Bordeaux - Prems 1', 'Rouen - 28 février', 'Limoges - 20 mars', 'Toulouse - 12 janvier', 'Reims - 1er mars', 'Dijon - 27 mars', 'Nantes - 26 janvier', 'Lyon - 6 mars', 'Besançon - 28 mars', 'Paris - 31 janvier', 'Marseille - 7 mars', 'Nancy - 29 mars', 'Orléans - 2 février', 'Montpellier - 8 mars', 'Strasbourg - 30 mars', 'Amiens - 3 avril', 'Lille - 4 avril', 'Clermont - 18 avril', 'Rennes - 22 mai');
Ci après le code modifié par moi de l'index.php extrait avec les cases a afficher
Edit: voir plus bas pour trouver le code

Ci après le code modifié par moi de registerform.php extrait les correspondances de case (j'ai fait que les 3 premiers pour tester)
Edit: voir plus bas pour trouver le code

je pense que j'ai rater un truc :(
merci a vous !
Modifié en dernier par max216 le 01 août 2012, 11:32, modifié 1 fois.

Petit nouveau ! | 8 Messages

01 août 2012, 10:58

Re j'ai changé dans l'index les valeurs que j'avais oublié "lieu de formation1" 2,3,..... et maintenant il me mets des villes qui ne correspondent pas a mes choix :|

Petit nouveau ! | 8 Messages

01 août 2012, 11:31

malgré moultes modifs j'ai toujours les villes décallées :( je comprends vraiment pas :(

je remet mes deux derniers codes modifiés par moi
index

Code : Tout sélectionner

<input type="hidden" name="lieu_formation"> <table class="formation_list" id="formation_zone"> <tr> <td><B>Caen</B><BR><input id="lieu_formation_1" type="checkbox" name="lieu_formation[0]" value="1">Prems 1<span> (mardi 04/09/12)</span> <BR><input id="lieu_formation_2" type="checkbox" name="lieu_formation[1]" value="1">Prems 2<span> (mercredi 05/09/12)</span></td> <td><B>Nantes</B><BR><input id="lieu_formation_3" type="checkbox" name="lieu_formation[2]" value="1">Prems 1<span> (mardi 18/09/12)</span> <BR><input id="lieu_formation_4" type="checkbox" name="lieu_formation[3]" value="1">Prems 2<span> (mercredi 19/09/12)</span></td> <td><B>Lille</B><BR><input id="lieu_formation_5" type="checkbox" name="lieu_formation[4]" value="1">Prems 1<span> (mardi 25/09/12)</span> <BR><input id="lieu_formation_6" type="checkbox" name="lieu_formation[5]" value="1">Prems 2<span> (mercredi 26/09/12)</span></td> </tr> <tr> <td><B>Marseille</B><BR><input id="lieu_formation_7" type="checkbox" name="lieu_formation[6]" value="1">Prems 1<span> (mardi 02/10/12)</span> <BR><input id="lieu_formation_8" type="checkbox" name="lieu_formation[7]" value="1">Prems 2<span> (mercredi 03/10/12)</span></td> <td><B>Clermont-Ferrand</B><BR><input id="lieu_formation_9" type="checkbox" name="lieu_formation[8]" value="1">Prems 1<span> (mardi 09/10/12)</span> <BR><input id="lieu_formation_10" type="checkbox" name="lieu_formation[9]" value="1">Prems 2<span> (mercredi 10/10/12)</span></td> <td><B>Limoges</B><BR><input id="lieu_formation_11" type="checkbox" name="lieu_formation[10]" value="1">Prems 1<span> (mardi 16/10/12)</span> <BR><input id="lieu_formation_12" type="checkbox" name="lieu_formation[11]" value="1">Prems 2<span> (mercredi 17/10/12)</span></td> </tr> <tr> <td><B>Amiens</B><BR><input id="lieu_formation_13" type="checkbox" name="lieu_formation[12]">Prems 1<span> (mardi 23/10/12)</span> <BR><input id="lieu_formation_14" type="checkbox" name="lieu_formation[13]">Prems 2<span> (mercredi 24/10/12)</span></td> <td><B>Poitiers</B><BR><input id="lieu_formation_15" type="checkbox" name="lieu_formation[14]">Prems 1<span> (mardi 13/11/12)</span> <BR><input id="lieu_formation_16" type="checkbox" name="lieu_formation[15]">Prems 2<span> (mercredi 14/11/12)</span></td> <td><B>Bordeaux</B><BR><input id="lieu_formation_17" type="checkbox" name="lieu_formation[16]">Prems 1<span> (mardi 20/11/12)</span> <BR><input id="lieu_formation_18" type="checkbox" name="lieu_formation[17]">Prems 2<span> (mercredi 21/11/12)</span></td> </tr> <tr> <td><B>Toulouse</B><BR><input id="lieu_formation_19" type="checkbox" name="lieu_formation[18]">Prems 1<span> (mardi 22/11/12)</span> <BR><input id="lieu_formation_20" type="checkbox" name="lieu_formation[19]">Prems 2<span> (mercredi 23/11/12)</span></td> <td><B>Lyon</B><BR><input id="lieu_formation_21" type="checkbox" name="lieu_formation[20]">Prems 1<span> (mardi 27/11/12)</span> <BR><input id="lieu_formation_22" type="checkbox" name="lieu_formation[21]">Prems 2<span> (mercredi 28/11/12)</span></td> <td><B>Nancy</B><BR><input id="lieu_formation_23" type="checkbox" name="lieu_formation[22]">Prems 1<span> (mardi 04/12/12)</span> <BR><input id="lieu_formation_24" type="checkbox" name="lieu_formation[23]">Prems 2<span> (mercredi 05/12/12)</span></td> </tr> <tr> <td><B>Montpellier</B><BR><input id="lieu_formation_25" type="checkbox" name="lieu_formation[24]">Prems 1<span> (mardi 11/12/12)</span> <BR><input id="lieu_formation_26" type="checkbox" name="lieu_formation[25]">Prems 2<span> (mercredi 12/12/12)</span></td> <td><B>Dijon</B><BR><input id="lieu_formation_27" type="checkbox" name="lieu_formation[26]">Prems 1<span> (mardi 18/12/12)</span> <BR><input id="lieu_formation_28" type="checkbox" name="lieu_formation[27]">Prems 2<span> (mercredi 19/12/12)</span></td> <td><B>Rennes</B><BR><input id="lieu_formation_29" type="checkbox" name="lieu_formation[28]">Prems 1<span> (jeudi 03/01/13)</span> <BR><input id="lieu_formation_30" type="checkbox" name="lieu_formation[29]">Prems 2<span> (vendredi 04/01/13)</span></td> </tr> <tr> <td><B>Orléans</B><BR><input id="lieu_formation_31" type="checkbox" name="lieu_formation[30]">Prems 1<span> (mardi 08/01/13)</span> <BR><input id="lieu_formation_32" type="checkbox" name="lieu_formation[31]">Prems 2<span> (mercredi 09/01/13)</span></td> <td><B>Rouen</B><BR><input id="lieu_formation_33" type="checkbox" name="lieu_formation[32]">Prems 1<span> (mardi 15/01/13)</span> <BR><input id="lieu_formation_34" type="checkbox" name="lieu_formation[33]">Prems 2<span> (mercredi 16/01/13)</span></td> <td><B>Paris</B><BR><input id="lieu_formation_35" type="checkbox" name="lieu_formation[34]">Prems 1<span> (jeudi 17/01/13)</span> <BR><input id="lieu_formation_36" type="checkbox" name="lieu_formation[35]">Prems 2<span> (vendredii 18/01/13)</span></td> </tr> <tr> <td><B>Besançon</B><BR><input id="lieu_formation_37" type="checkbox" name="lieu_formation[36]">Prems 1<span> (mardi 22/01/13)</span> <BR><input id="lieu_formation_38" type="checkbox" name="lieu_formation[37]">Prems 2<span> (mercredi 23/01/13)</span></td> <td><B>Chalons en Champagne</B><BR><input id="lieu_formation_39" type="checkbox" name="lieu_formation[38]">Prems 1<span> (mardi 29/01/13)</span> <BR><input id="lieu_formation_40" type="checkbox" name="lieu_formation[39]">Prems 2<span> (mercredi 30/01/13)</span></td> <td><B>Strasbourg</B><BR><input id="lieu_formation_41" type="checkbox" name="lieu_formation[40]">Prems 1<span> (jeudi 00/00/00)</span> <BR><input id="lieu_formation_42" type="checkbox" name="lieu_formation[41]">Prems 2<span> (mercredi 00/00/00)</span></td> </tr> </tr> <tr> <td ><input type="checkbox" name="lieu_formation[42]">Autre&nbsp;&nbsp;&nbsp;&nbsp;Précisez votre souhait</td> <td colspan="2"><input type="text" title="Ville de formation souhaitée" name="ville_2" value="Ville" class="type-text-medium left" style="margin-right:0px;"></td> </tr> </table>
form

Code : Tout sélectionner

if (empty($return['msg'])) { $formations = array('Caen - Prems 1', 'Nantes - Prems 1', 'Lille - Prems 1', 'Caen - Prems 2', 'Nantes - Prems 2','Lille - Prems 2', 'Marseille - Prems 1', 'Clermont Ferrand - Prems 1', 'Limoges - Prems 1', 'Marseille- Prems 2', 'Clermont Ferrand - Prems 2', 'Limoges - Prems 2', 'Amiens - Prems 1', 'Poitiers - Prems 1', 'Bordeaux - Prems 1', 'Poitiers - Prems 2', 'Amiens- Prems 2', 'Bordeaux - Prems 2', 'Toulouse - Prems 1', 'Lyon - Prems 1', 'Nancy - Prems 1', 'Toulouse - Prems 2', 'Lyon - Prems 2', 'Nancy - Prems 2', 'Montpellier - Prems 1', 'Dijon - Prems 1', 'Rennes - Prems 1', 'Montpellier - Prems 2', 'Dijon - Prems 2', 'Rennes - Prems 2', 'Orléans - Prems 1', 'Rouen - Prems 1', 'Paris - Prems 1', 'Orléans - Prems 2', 'Rouen - Prems 2', 'Paris - Prems 2', 'Besançon - Prems 1', 'Chalons en Champagne - Prems 1', 'Strasbourg - Prems 1', 'Besançon - Prems 2', 'Chalons en Champagne - Prems 2', 'Strasbourg - Prems 2', 'Autre');

Petit nouveau ! | 8 Messages

01 août 2012, 17:25

idem pour la fonction "value" que j'ai testé sur chaque ligne, toujours des résultats qui ne correspondent pas :(

Mammouth du PHP | 702 Messages

01 août 2012, 17:30

donne le code sans traitement essaye de mettre les balises <?php et ?> pour la coloration syntaxique (plus facile à lire)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 août 2012, 20:32

Moui, pis faudrait simplifier le code et tester avec 2 dates voir si ça fonctionne, puis 4, puis ...

Par rapport à ton code, il y a des choses bizarres puisque tu as un input hidden "lieu_formation" avant ton tableau (qui correspond donc à rien ?) et tes cases à cocher lieu_formation[...] ensuite.

A noter qu'à partir de la case 12, tu ne précises plus l'attribut value, donc au lieu de "1" lorsque la case est cochée, tu recevras "on".

Enfin, à quel moment est-ce que dans ton code php tu traites le contenu du tableau $lieu_formation ? C'est surtout cette partie là qu'il faut nous montrer. Logiquement, si tu cocher la 2e et la 4e case, tu dois récupérer un tableau $lieu_formation = array (2, 4). Est-ce bien le cas ? Qu'est ce que tu en fais ? Qu'est ce que tu voudrais obtenir ? ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 8 Messages

01 août 2012, 21:31

merci de votre retour !

pour les balises en fait c'est des extraits donc... je me rends compte que cela sors trop du contexte et que ce n'est pas clair...
pour que ce soit plus simple et plus lisible, je joint les 2 fichiers:
http://paf.im/A0oQU -> index.php.
http://paf.im/LiRLP -> le formulaire

en fait c'est une page que j'aimerais modifier, la mise en page et le reste doit rester tel quel. y'a juste en plus les images et un peu de javascript...

Petit nouveau ! | 8 Messages

02 août 2012, 08:13

si quelqu'un a une idée pour une modif même complete avec la premiere ville au moins c'est cool

Petit nouveau ! | 8 Messages

02 août 2012, 08:55


Enfin, à quel moment est-ce que dans ton code php tu traites le contenu du tableau $lieu_formation ? C'est surtout cette partie là qu'il faut nous montrer. Logiquement, si tu cocher la 2e et la 4e case, tu dois récupérer un tableau $lieu_formation = array (2, 4). Est-ce bien le cas ? Qu'est ce que tu en fais ? Qu'est ce que tu voudrais obtenir ? ...
désolé j'avais pas fait attention a tes questions :s

en fait pour le code en entier il faut voir plus haut, ce que je veux c'est que si la personne me coche une ou plusieurs villes, les recevoir par mail en plus de son nom, prénom et mail. Le soucis c'est que je ne recois que des villes en décalé.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 août 2012, 11:20

Je n'ai pas regardé ton code, mais est-ce que le problème ne serait pas tout simplement l'ordre des informations dans ton tableau $formation ?

En effet, si je coche les case "Caen - Prems 2" (lieu_formation[1]) et "Lille - Prems 1" (lieu_formation[4]), tu vas donc recevoir un tableau $_POST['lieu_formation'] qui aura pour valeur array(1, 4).

Si tu utilises ces informations par rapport à ton tableau $formation, cela correspondrait effectivement à 'Nantes - Prems 1' (en position 1 dans ton tableau) et 'Nantes - Prems 2' (en position 4 dans ton tableau). Alors que si tu remets les données de ton tableau $formation dans le même ordre que tes cases, ça devrait mieux fonctionner (si j'ai bien compris ce à quoi te servait $formation).
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 8 Messages

02 août 2012, 17:31

merci encore !

en fait j'ai tous coché un par un et coché les réponses par raaport a ce que j'avais coché et j'en suis arrivé a la même conclusion, du coup j'ai tout redécalé et c'est bon.

la prochaine fois je referais tout de A à Z pour gagner du temps :roll: