checkbox dans une boucle

coppola
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 26
Inscription: 19 Avr 2005

checkbox dans une boucle

Message le Ven Jan 27, 2006 14:38

Voiçi mon prob :

j'utilise une boucle pour afficher une liste avec des case à cocher :

while($toto= $db->fetch_array($query)) {

<input type="checkbox" name="supprimer[]" value="<?=$toto['ID'];?>">

}

et pour verifier si les case sont coché opur la supression j'utilise ce javascript:

<script language="javascript">
function check()
{

var supprimer = document.form.elements["supprimer[]"];
var nbrCasesCochees = 0;

for (i = 0; i < supprimer.length; i++)
{
if (supprimer[i].checked)
{
nbrCasesCochees++;
}
}
if (nbrCasesCochees < 1)
{
alert("Vous devez sélectionner au moins un user!\n" );

return false;
}
}
</script>
-------
Tout se passe bien sauf que quand il y a un seul user c'est à dire kd le resultat de la boucle while affiche un utilisateur , cette fonction javascript le considere comme '0' c'est à dire tu peux supprimer mais quad il il reste un tu peux pas !! je comprends rien :(

et Merci d'avance pour l'aide


PS: dans un formulaire statique ca marche !! :(:(:(:(


blman
WRInaute accro
WRInaute accro
 
Messages: 3073
Inscription: 5 Sep 2003

Message le Ven Jan 27, 2006 14:54

Voici la mienne qui fonctionne (j'ai longtemps hésité avant de te la filer car j'y avais passé beaucoup de temps à l'époque). Peut-être que tu y trouvera des améliorations à faire et que tu m'en fera part :



function controle_form_sup(obj){

var c=0;

for(var i=0; i<obj.elements.length; i++)
{
if(obj.elements[i].name=="etat[]") c++;
}

var elts=obj.elements['etat[]'];
var compteur=0;

if(c==1)
{

if(elts.checked==true) compteur++;

}
else{
for(var i=0; i<c; i++)
{

if(elts[i].checked==true) compteur++;

}

}

if(compteur==0){
alert("Veuillez choisir au moins 1 élément à supprimer en cochant la case correspondante, svp");
return false;
}
else{
if(confirm("Voulez-vous supprimer les éléments sélectionnés ?")) return true;
else return false;
}

}

<form name="form_sup" action="page.php" method="post" onsubmit="return controle_form_sup(this);">
<input type="checkbox" name="etat[]" value="'.$valeur0.'"/>
<input type="checkbox" name="etat[]" value="'.$valeur1.'"/>
<input type="checkbox" name="etat[]" value="'.$valeur2.'"/>
<input type="checkbox" name="etat[]" value="'.$valeur3.'"/>
<input type="checkbox" name="etat[]" value="'.$valeur4.'"/>
etc...

<input type="submit" name="bouton_sup" value="Supprimer les éléments sélectionnés"/>
</form>

coppola
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 26
Inscription: 19 Avr 2005

Message le Ven Jan 27, 2006 15:10

merci beaucoups !! ca marche !! je comprends le temps que tu as mis à trouver, mais moi aussi c'est qu'apres avoir été bloqué pendant un bon bout de temps que j'ai posté!

De toute facon je vai voire ou ca cloche ds la fonction precendente !!

et merci encore :):):)


blman
WRInaute accro
WRInaute accro
 
Messages: 3073
Inscription: 5 Sep 2003

Message le Ven Jan 27, 2006 15:20

Par contre, en regardant ta fonction de plus près, ça me donne des idées pour optimiser la mienne donc je te retourne le merci...

Je regarde ça de plus près dès que j'ai une petite heure qui traine (donc pas tout de suite) et je la reposterais ici (si j'y repense)

Jeaf16
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 32
Inscription: 16 Juil 2004

Message le Lun Fév 27, 2006 22:31

Moi je vous remercie.
Je viens d'utiliser cette fonction qui est génial et m'a fait gagner du temps même si avant d'arriver sur ce post j'ai galéré.

Fabien[/img]


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: salva et 0 invités