Vérifier si checkbox dynamique est coché
Résolu
tortue60
Messages postés
250
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je réalise une petit appli web et je voudrai vérifier en php si j'ai au moins une checkbox dynamique qui est coché et si c pas le cas, on retourne un message. Je pense que je doit faire un foreach mais je c pas trop ou le mettre. Voici mes différents scripts:
case à cosé dynmaique:
<?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' ";
?>
fonction qui vérifie les champs de mon formulaire:
function verifierDemande($nomAVerifier, $emailAVerifier, $telephAVerifier, $origineAVerifier, $rencontreAVerifier, $tabCaseACocher, &$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($tabCaseACocher) == false){
ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir");
}
}
fonction qui vérifie les case à cocher
function verifCocher($tabEle)
{
$trouve = false;
$nb = count($tabEle);
$i=0;
while($trouve == false && $i< $nb)
{
if (empty($_POST[$tabEle[$i]])== false)
{
$trouve = true;
}
else
{
$i = $i+1;
}
}
return $trouve;
}
début de mon script d'ajout des valeurs des champs de mon formulaire dans ma bdd:
// fonctions de contrôle
include("includes/utilitaires.php");
// appel de la fonction qui supprime les espaces en début et en fin de chaine de chacun des éléments du tableau passé en paramètre
supEspaceDebutFin($_POST);
extract ($_POST);
$rencontre = lireDonneePost("rencontre");
$checkbox = lireDonneePost("souhait", "N");
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
// création du tableau qui va contenir le nom des case à cocher
$caseACocher = array($checkbox); // faire une boucle
// 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, $caseACocher, $tableauErreurs);
// si des erreurs ont été detectées dans le formulaire, on les affichent
if (nbErreurs($tableauErreurs)>0)
{
$lstErr = chaineErreurs($tableauErreurs);
Echo "<script language='Javascript'>";
Echo "<!--\n"; // le "\n" permet de passer une ligne en Javascript
Echo "alert('$lstErr ');\n";
Echo "// -->\n";
Echo "</script\n>";
include("demandeInfoForm.php");
}
...
Pouvez-vous m'aidez?
Je réalise une petit appli web et je voudrai vérifier en php si j'ai au moins une checkbox dynamique qui est coché et si c pas le cas, on retourne un message. Je pense que je doit faire un foreach mais je c pas trop ou le mettre. Voici mes différents scripts:
case à cosé dynmaique:
<?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' ";
?>
fonction qui vérifie les champs de mon formulaire:
function verifierDemande($nomAVerifier, $emailAVerifier, $telephAVerifier, $origineAVerifier, $rencontreAVerifier, $tabCaseACocher, &$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($tabCaseACocher) == false){
ajouterErreur($tabErreurs, "Veuillez indiquer ce que vous souhaitez obtenir");
}
}
fonction qui vérifie les case à cocher
function verifCocher($tabEle)
{
$trouve = false;
$nb = count($tabEle);
$i=0;
while($trouve == false && $i< $nb)
{
if (empty($_POST[$tabEle[$i]])== false)
{
$trouve = true;
}
else
{
$i = $i+1;
}
}
return $trouve;
}
début de mon script d'ajout des valeurs des champs de mon formulaire dans ma bdd:
// fonctions de contrôle
include("includes/utilitaires.php");
// appel de la fonction qui supprime les espaces en début et en fin de chaine de chacun des éléments du tableau passé en paramètre
supEspaceDebutFin($_POST);
extract ($_POST);
$rencontre = lireDonneePost("rencontre");
$checkbox = lireDonneePost("souhait", "N");
// création du tableau qui va contenir les erreurs trouvées
$tableauErreurs = array();
// création du tableau qui va contenir le nom des case à cocher
$caseACocher = array($checkbox); // faire une boucle
// 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, $caseACocher, $tableauErreurs);
// si des erreurs ont été detectées dans le formulaire, on les affichent
if (nbErreurs($tableauErreurs)>0)
{
$lstErr = chaineErreurs($tableauErreurs);
Echo "<script language='Javascript'>";
Echo "<!--\n"; // le "\n" permet de passer une ligne en Javascript
Echo "alert('$lstErr ');\n";
Echo "// -->\n";
Echo "</script\n>";
include("demandeInfoForm.php");
}
...
Pouvez-vous m'aidez?
A voir également:
- Vérifier si checkbox dynamique est coché
- Tableau croisé dynamique - Guide
- Verifier compatibilite windows 11 - Guide
- Vérifier si une phrase est correcte - Accueil - Google
- Vérifier si mot de passe piraté - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
7 réponses
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
// 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
}
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 } }
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
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"); } }
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);
$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.
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
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");
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); }
// création du tableau qui va contenir le nom des case à cocher
$caseACocher = array($checkbox); // faire une boucle