Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/12/2010, 17h05   #1
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
Par défaut Conserver plusieurs checkbox après une soumission

Bonjour,

j'ai un formulaire qui contient entre autre une checkbox à 6 valeurs :

Code :
1
2
3
4
5
6
<label><input type="checkbox" name="cibles[]" value="francais" />Français</label>
<label><input type="checkbox" name="cibles[]" value="anglais" />Anglais</label>
<label><input type="checkbox" name="cibles[]" value="italien" />Italien</label>
<label><input type="checkbox" name="cibles[]" value="portugais" />Portugais</label>
<label><input type="checkbox" name="cibles[]" value="espagnol" />Espagnol</label>
<label><input type="checkbox" name="cibles[]" value="allemand" />Allemand</label>
A la soumission du formulaire, je vérifie que tous les champs sont remplis et s'ils ne le sont pas le formulaire se réaffiche avec les données bien remplie affichées.
Je souhaite donc que si des checkbox sont cochées, elles le restent au re-chargement de la page.

Pour cela, je récupère la liste des cibles :
Code :
$liste_cibles = implode(",", $_POST['cibles']);
Ensuite j'ai tenté d'utiliser preg_match pour savoir si une langue est cochée ou pas :

Code :
1
2
3
4
 
<label><input type="checkbox" name="cibles[]" value="francais" <?php if(preg_match('/^francais/', $liste_cibles)==true) echo 'checked="checked"';?>>Français</label>
<label><input type="checkbox" name="cibles[]" value="anglais"   <?php if(preg_match('/^anglais/', $liste_cibles)==true) echo 'checked="checked"';?>>Anglais</label>
etc
ca fonctionne pour la première checkbox cochée, mais après la recherche s'arrête.
Exemple :
je coche anglais et espagnol
Code :
1
2
3
4
5
6
7
 
if(preg_match('/^francais/', $liste_cibles)==true) echo 'Français OK<br>';
if(preg_match('/^anglais/', $liste_cibles)==true) echo 'Anglais OK<br>';
if(preg_match('/^italien/', $liste_cibles)==true) echo 'Italien OK<br>';
if(preg_match('/^portugais/', $liste_cibles)==true) echo 'Portugais OK<br>';
if(preg_match('/^espagnol/', $liste_cibles)==true) echo 'Espagnol OK<br>';
if(preg_match('/^allemand/', $liste_cibles)==true) echo 'Allemand OK<br>';
me renvoie uniquement Anglais OK

Pouvez-vous m'aider ?

D'avance merci !!!!
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 17h37   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
bonjour,

retires les ^ dans tes regex
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 17h55   #3
Membre du Club
 
Inscription : juillet 2003
Messages : 214
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 214
Points : 54
Points : 54
Envoyer un message via MSN à babylone7
Oooooh merci Madfrix ça marche super bien !!
babylone7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h24.


 
 
 
 
Partenaires

Hébergement Web