[JavaScript+php] problème

Résolu
Bonjour à tous .
Voila j'ai une page qui affiche une liste de documents récupéré sur un base sql .
Devant chacun des éléments de la liste, je fais apparaitre un "checkbox" car ce que je souhaite faire c'est pouvoir supprimer les documents sélectionnés .

Exemple : Lorsque le mec selectionne 2 éléments sur les 10 et qu'il supprime, ca marche bien car les la page se recharge avec les deux élément selectionnés précédemment qui ont disparu .

Le problème est dans le cas ou le mec ne sélectionne rien et clique sur supprimer .
La j'ai une erreur car la fonction php qui parcours les checkbox n'a pas de paramètres ... jusque la normal .

J'ai donc voulu intégrer un fonction javascript qui vérifie lors du submit que au moins une case est coché :
En voici le code :

<script type="text/javascript">
function checkbox_selected(form)
{
for (i=0, n=form.elements.length; i<n; i++)
{
if ((form.elements[i].checked == true))
return true;
}
alert("Selectionnez un ou plusieurs QCM.");
return false;
}
</script>


Maintenant, lorsque le mec ne sélectionne aucune case et qu'il exécute, le popup d'erreur s'ouvre bien avec le message "Selectionnez un ou plusieurs QCM." , mais dès qu'on ferme ce popub, la fonction php est quand meme exécuté avec un checkbox de vide et mon message d'erreur apparait a nouveau .

une petite aide ?

juste pour info la fonction php qui recup les éléments selectionnée est faite avec ca : foreach ($qcm as $val)
Configuration: Windows XP
Firefox 2.0.0.6

5 réponses

  1. Contributeur
    salut,

    je suppose qu'il faut ajouter un "return false;" à l'appel de la fonction.
    c'est quoi le code html du 'submit' qui déclenche la vérification ?
    0
    1. Contributeur
      je dirais même plus il faut que tu appelles la vérification depuis la '<form>'.
      <form onsubmit="return checkbox_selected()">
      0
      1. salut .

        mon bouton submit :
        <input type="submit" name="request" value="Supprimer" onclick='checkbox_selected(this.form)'><br />

        mon form :
        <form action="requete_delete.php" method="post" name="requete" class="text" onsubmit="retourn confirmation(this)">

        je pense effectivement que c le form qui ne va pas
        0
        1. Contributeur
          tu as de toute façon une erreur dans le 'onSubmit'.
          essaie comme ça :
          <input type="submit" name="request" value="Supprimer" ><br /> 
          
          <form action="requete_delete.php" method="post" name="requete" class="text" onsubmit="return checkbox_selected(this.form)"> 
          
          0
          1. merci grand chef :)
            tout est réglé . c'était bien ca .

            Pour les prochains galériens comme moi, la solution :

            déclarer votre formulaire comme ceci :

            <form action="next.php" method="post" name="asyouwant" class="text" onsubmit=" return checkbox_selected(this)">

            et la fonction :

            <script type="text/javascript">
            function checkbox_selected(form)
            {
            for (i=0, n=form.elements.length; i<n; i++)
            {
            if ((form.elements[i].checked == true))
            return true;
            }
            alert("Selectionnez un ou plusieurs QCM.");
            return false;
            }
            </script>
            0