Vérifier si checkbox dynamique est coché
Résolu/Fermé
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
-
25 mai 2013 à 19:33
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 27 mai 2013 à 18:18
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 27 mai 2013 à 18:18
A voir également:
- Vérifier si checkbox dynamique est coché
- Tableau croisé dynamique - Guide
- Verifier un lien - Guide
- Vérifier si une phrase est correcte - Accueil - Google
- Liste déroulante dynamique excel - Guide
- Vérifier si mot de passe piraté - Guide
7 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 25/05/2013 à 20:43
Modifié par Alain_42 le 25/05/2013 à 20:43
name = 'souhait[]' de ton formulaire fait ce que tu reçoit $_POST['souhait'] est un array essayes en vérifiant la taille de cet arrya
sizeof($_POST['souhait']) >0 ou si ça marche pas en parcourant cet array par une boucle et vérifiant si pas vide
sizeof($_POST['souhait']) >0 ou si ça marche pas en parcourant cet array par une boucle et vérifiant si pas vide
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 mai 2013 à 21:26
25 mai 2013 à 21:26
// création du tableau qui va contenir le nom des case à cocher
$caseACocher = array($checkbox); // faire une boucle
non, tout simplement du fait que plus haut tu as fait extract($_POST)
$souhait est l'array qui contient les case cochées
mais attention si aucune case cochée l'array n'existe pas donc il suffit de tester si il existe pour savoir si au moins une case cochée
if(isset($souhait)) {
//au moins une case est cochée
}
$caseACocher = array($checkbox); // faire une boucle
non, tout simplement du fait que plus haut tu as fait extract($_POST)
$souhait est l'array qui contient les case cochées
mais attention si aucune case cochée l'array n'existe pas donc il suffit de tester si il existe pour savoir si au moins une case cochée
if(isset($souhait)) {
//au moins une case est cochée
}
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
25 mai 2013 à 21:29
25 mai 2013 à 21:29
Je doit mettre quoi aussi dans le if. J'ai jamais fait un truc comme et j'ai rien trouvé sur le net. Moi on m'a jsute dit de fair eune boucle foreach
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 mai 2013 à 21:34
25 mai 2013 à 21:34
if(isset($souhait)) { //au moins une case est cochée foreach($souhait as $index=>$value){ echo $value; //qui correspond a la valeur de $cle de chaque case cochée } }
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
25 mai 2013 à 21:43
25 mai 2013 à 21:43
sa fonctionne toujours pas:
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
if (isset($souhait)){
foreach($souhait as $index =>$value){
echo $value;
}
}
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souahait, $tableauErreurs);
on me dit une erreur dans la fonction VerifCocher
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
if (isset($souhait)){
foreach($souhait as $index =>$value){
echo $value;
}
}
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souahait, $tableauErreurs);
on me dit une erreur dans la fonction VerifCocher
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 26/05/2013 à 10:22
Modifié par Alain_42 le 26/05/2013 à 10:22
regardes de plus près comme tu as ecrit souhait
et tu dois modifier:
if(verifCocher($tabCaseACocher) == false){
ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir");
}
}
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souahait, $tableauErreurs);
et tu dois modifier:
if(verifCocher($tabCaseACocher) == false){
ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir");
}
}
if(verifCocher($souhait) == false){ ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir"); } }
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
26 mai 2013 à 11:08
26 mai 2013 à 11:08
fonctionne toujours pas :
$rencontre = lireDonneePost("rencontre");
$checkbox = lireDonneePost("souhait", "N");
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
if(isset($souhait)){
foreach($souhait as $index =>$value){
}
}
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souhait, $tableauErreurs);
( ! ) Notice: Undefined variable: souhait in C:\wamp\www\site\demandeInfoAjout.php on line 35:
cette ligne:
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souhait, $tableauErreurs);
$rencontre = lireDonneePost("rencontre");
$checkbox = lireDonneePost("souhait", "N");
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
if(isset($souhait)){
foreach($souhait as $index =>$value){
}
}
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souhait, $tableauErreurs);
( ! ) Notice: Undefined variable: souhait in C:\wamp\www\site\demandeInfoAjout.php on line 35:
cette ligne:
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souhait, $tableauErreurs);
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
Modifié par Autumn`Tears le 26/05/2013 à 20:36
Modifié par Autumn`Tears le 26/05/2013 à 20:36
$souhait n'existe pas parce que c'est $_POST['souhait']... Essaie de faire $souhait = $_POST['souhait'] après avoir vérifié if(sizeof($_POST['souhait'] => 0)
Également, rien ne s'exécute dans ton foreach
if(isset($souhait)){
foreach($souhait as $index =>$value){
}
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souhait, $tableauErreurs);
}
Peut-être était-ce l'idée de départ.
Également, rien ne s'exécute dans ton foreach
if(isset($souhait)){
foreach($souhait as $index =>$value){
}
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $souhait, $tableauErreurs);
}
Peut-être était-ce l'idée de départ.
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
26 mai 2013 à 20:38
26 mai 2013 à 20:38
Se se trouve ou sa if(sizeof($_POST['souhait'] => 0)?
Sinon j'ai encor bosser dessus mais sa foctnionne toujours: mon message apparait pas pour les case à coché quand j'ai 0, 1 ou plusieurs case cochés alors qu'il devrait aparaitre quand j'en ai 0
les cases à cocher dynamique:
<?php
$requete = "select * from souhaiteobtenir";
$result = $db->query($requete);
$ligne = $result->fetch_object();
while($ligne != false)
{
$cle = $ligne->id;
$valeur = $ligne->libel;
echo "<input type ='checkbox' class = 'caseACocher' id = 'souhait$cle' name = 'souhait[]' value = '$cle' />$valeur<br />";
$ligne = $result->fetch_object();
}
echo "<input type ='hidden' name = 'nbCheckbox' value = '$cle' ";
?>
extrait du script insert:
extract ($_POST);
$rencontre = lireDonneePost("rencontre");
$checkbox = lireDonneePost("souhait", "N");
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $checkbox, $tableauErreurs);
fonction qui vérifie les champs:
function verifierDemande($nomAVerifier, $emailAVerifier, $telephAVerifier, $origineAVerifier, $rencontreAVerifier, $souhait, &$tabErreurs){
if(empty($nomAVerifier)){
ajouterErreur($tabErreurs, "Le nom doit être renseigné");
}
if(empty($emailAVerifier)){
ajouterErreur($tabErreurs, "Le mail doit être renseigné");
}
else
{
if(verifierAdresseMail($emailAVerifier)==false)
{
ajouterErreur($tabErreurs, "Le mail est incorrect");
}
}
if (empty($telephAVerifier)){
ajouterErreur($tabErreurs, "Le numéro de téléphone doit être renseigné");
}
else
{
if(estEntierPositif($telephAVerifier) == false)
{
ajouterErreur($tabErreurs, "Le téléphone n\'est pas numérique");
}
}
if($origineAVerifier < 1){
ajouterErreur($tabErreurs, "Veuillez indiquer comment vous avec connu notre site");
}
if($rencontreAVerifier == " "){
ajouterErreur($tabErreurs, "Veuillez indiquer si vous souhaitez être rencontré");
}
if(verifCocher($souhait) == false){
ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir");
}
}
fonction verifCocher:
function verifCocher($tabEle)
{
return (count($tabEle)>0);
}
En espérant que sa vous aide
Sinon j'ai encor bosser dessus mais sa foctnionne toujours: mon message apparait pas pour les case à coché quand j'ai 0, 1 ou plusieurs case cochés alors qu'il devrait aparaitre quand j'en ai 0
les cases à cocher dynamique:
<?php
$requete = "select * from souhaiteobtenir";
$result = $db->query($requete);
$ligne = $result->fetch_object();
while($ligne != false)
{
$cle = $ligne->id;
$valeur = $ligne->libel;
echo "<input type ='checkbox' class = 'caseACocher' id = 'souhait$cle' name = 'souhait[]' value = '$cle' />$valeur<br />";
$ligne = $result->fetch_object();
}
echo "<input type ='hidden' name = 'nbCheckbox' value = '$cle' ";
?>
extrait du script insert:
extract ($_POST);
$rencontre = lireDonneePost("rencontre");
$checkbox = lireDonneePost("souhait", "N");
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
// appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs
$retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $checkbox, $tableauErreurs);
fonction qui vérifie les champs:
function verifierDemande($nomAVerifier, $emailAVerifier, $telephAVerifier, $origineAVerifier, $rencontreAVerifier, $souhait, &$tabErreurs){
if(empty($nomAVerifier)){
ajouterErreur($tabErreurs, "Le nom doit être renseigné");
}
if(empty($emailAVerifier)){
ajouterErreur($tabErreurs, "Le mail doit être renseigné");
}
else
{
if(verifierAdresseMail($emailAVerifier)==false)
{
ajouterErreur($tabErreurs, "Le mail est incorrect");
}
}
if (empty($telephAVerifier)){
ajouterErreur($tabErreurs, "Le numéro de téléphone doit être renseigné");
}
else
{
if(estEntierPositif($telephAVerifier) == false)
{
ajouterErreur($tabErreurs, "Le téléphone n\'est pas numérique");
}
}
if($origineAVerifier < 1){
ajouterErreur($tabErreurs, "Veuillez indiquer comment vous avec connu notre site");
}
if($rencontreAVerifier == " "){
ajouterErreur($tabErreurs, "Veuillez indiquer si vous souhaitez être rencontré");
}
if(verifCocher($souhait) == false){
ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir");
}
}
fonction verifCocher:
function verifCocher($tabEle)
{
return (count($tabEle)>0);
}
En espérant que sa vous aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2013 à 20:57
26 mai 2013 à 20:57
pour Autumn Tears
extract ($_POST) transforme entre autre $_POST['souhait'] en $souhait
pour toi:
que fait cette fonction ?
$checkbox = lireDonneePost("souhait", "N");
extract ($_POST) transforme entre autre $_POST['souhait'] en $souhait
pour toi:
que fait cette fonction ?
$checkbox = lireDonneePost("souhait", "N");
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
26 mai 2013 à 21:02
26 mai 2013 à 21:02
* Fournit la valeur d'une donnée transmise par la méthode post
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
26 mai 2013 à 21:07
26 mai 2013 à 21:07
j'ai repris cet exmple quand j'avais les case à coché en dur:
$appel = lireDonneePost("appel", "N");
$newslet = lireDonneePost("newslet", "N");
$rdv = lireDonneePost("rdv", "N");
$appel = lireDonneePost("appel", "N");
$newslet = lireDonneePost("newslet", "N");
$rdv = lireDonneePost("rdv", "N");
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2013 à 23:06
26 mai 2013 à 23:06
donnes nous le code de cette fonction
tortue60
Messages postés
250
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
1 septembre 2013
26 mai 2013 à 23:17
26 mai 2013 à 23:17
j'ai trouvé:
$checkbox = lireDonneePost("souhait", NULL);
j'ai remplacer le N par Null
$checkbox = lireDonneePost("souhait", NULL);
j'ai remplacer le N par Null
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
27 mai 2013 à 18:18
27 mai 2013 à 18:18
il y avait plus simple:
extrait du script insert: <?php extract ($_POST); $rencontre = lireDonneePost("rencontre"); //on n'utilise pas la fonction lireDonnees //$checkbox = lireDonneePost("souhait", "N"); if(!isset($souhait)) $souhait=array(); //si aucune case cochée, $_POST['souhait'] n'est pa tansmis donc $souhait n'eiste pas, laors on cree un array vide pour l'utiliser par la suite // création du tableau qui va contenir les erreurs trouvées $tableauErreurs = array(); // appel de ma méthode verifierDemande qui va vérifier les données saisies. les erreurs seton placées dans tableauErreurs $retVerif = verifierDemande($nom, $email, $teleph, $origine, $rencontre, $checkbox, $tableauErreurs); fonction qui vérifie les champs: function verifierDemande($nomAVerifier, $emailAVerifier, $telephAVerifier, $origineAVerifier, $rencontreAVerifier, $souhait, &$tabErreurs){ if(empty($nomAVerifier)){ ajouterErreur($tabErreurs, "Le nom doit être renseigné"); } if(empty($emailAVerifier)){ ajouterErreur($tabErreurs, "Le mail doit être renseigné"); } else { if(verifierAdresseMail($emailAVerifier)==false) { ajouterErreur($tabErreurs, "Le mail est incorrect"); } } if (empty($telephAVerifier)){ ajouterErreur($tabErreurs, "Le numéro de téléphone doit être renseigné"); } else { if(estEntierPositif($telephAVerifier) == false) { ajouterErreur($tabErreurs, "Le téléphone n\'est pas numérique"); } } if($origineAVerifier < 1){ ajouterErreur($tabErreurs, "Veuillez indiquer comment vous avec connu notre site"); } if($rencontreAVerifier == " "){ ajouterErreur($tabErreurs, "Veuillez indiquer si vous souhaitez être rencontré"); } if(sizeof($souhait) == 0){ ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir"); } } //et on n'utilise plus la fonction verifCocher fonction verifCocher: function verifCocher($tabEle) { return (count($tabEle)>0); }
25 mai 2013 à 20:54
// création du tableau qui va contenir le nom des case à cocher
$caseACocher = array($checkbox); // faire une boucle