Je fais un formulaire avec des type checkbox ayant pour nom_nom[] . Je construis ainsi un tableau mon_nom qui me permet en PHP de récupérer chacune des valeurs cochées afin de les traiter l'une après l'autre.
Le pb : je dois vérifier qu'au moins une case est cochée avant la validation du formulaire. Ce qui se passe, c'est qu'en tapant document.monformulaire.mon_nom, y pas moy d'accéder au champ checkbox, ni avec document.monformulaire.mon_nom[]. Quelqu'un a t il la soluce? Merci.
CODE |
<form method="POST" name="myform"> <input type="radio" checked name="mybutton"> <!-- Bouton radio selectionné par defaut - ID JS: document.myform.R1(0) --> <input type="radio" name="mybutton"> <!-- ID JS: document.myform.R1(1) --> <input type="radio" name="mybutton"> <!-- ID JS: document.myform.R1(2) --> <input type="submit" value="Envoyer" name="mysubmit"> <input type="reset" value="Rétablir" name="myreset"> </form>
<script language="javascript"> alert(document.myform.mybutton(0).checked); alert(document.myform.mybutton(1).checked); alert(document.myform.mybutton(2).checked); </script>
|
Merci.Ton truc marche je l'ai déjà fait mais ce n'est pas ce que je voulais faire.
Je veux le faire avec des checkbox et non des radio et c'est bien là la difficulté.
Dans la balise
headCODE |
<script language="javascript"> <!-- function controle () { if (document.formulaire.choix.value != 1) { alert("Vous n'avez pas coché la case") } } //--> </script> |
Le formulaire dans la page :
CODE |
<form name=formulaire onSubmit="controle()"> Entrez votre numéro : <input type="checkbox" name="CHOIX" value="1"> CASE 1<br> <input type="submit" value="Envoyer"> <input type="reset" value="Annuler"> </form> |
___________________________________________________
autre solution
Dans la balise head :
CODE |
<script language="javascript"> <!-- function calculette () { var total=0; if (caddie.achat1.checked) total+=705; if (caddie.achat2.checked) total+=614; if (caddie.achat3.checked) total+=370; caddie.Total.value=total+" Frs"; } //--> </script> |
dans le corps :
CODE |
<form name="caddie"> Produit 1<input type="checkbox" name="achat1" value="0" OnClick="calculette()"> <br> Produit 2<input type="checkbox" name="achat2" value="0" OnClick="calculette()"> <br> Produit 3<input type="checkbox" name="achat3" value="0" OnClick="calculette()"> <br> <input type="text" name="Total" size="8" readonly> </form>
|
Euh oui mais non.
Il me faut des variables du style machin[] pour avoir un tableau des cases cochées.Ce que vous m'expliquez je sais déjà faire et je l'ai déjà fait.
Mais merci quand même de votre aide.
Eh bien tu remplis ton tableau machin[] quand une case est cochée.
Dans l'entête :
CODE |
<script language="javascript"> <!-- var machin=new Array; function remplissage() {
if (formulaire.case1.checked) machin[0]="case1"; if (formulaire.case2.checked) machin[1]="case2"; if (formulaire.case3.checked) machin[2]="case3"; } //--> </script> |
Et dans la page :
CODE |
<form name="formulaire"> Case 1<input type="checkbox" name="case1" value="0" OnClick="remplissage()"> <br> Case 2<input type="checkbox" name="case2" value="0" OnClick="remplissage()"> <br> Case 3<input type="checkbox" name="case3" value="0" OnClick="remplissage()"> <br> </form> |
Le pb c'est que je ne connais pas le nombre de cases car elles se basent sur une base de données.
Bon je vais réfléchir , peut être que d'ici demain la solution m'apparaîtra.
Tu créé ton en-tête javascript depuis le PHP ...
tu itère une variable $i, et tu l'ajoute au nom ...
echo "case".$i;
non ?
tu veux le script PHP qui génère la page ?
Ouais c'est vrai j'avais pas pensé à ça. Non merci pour le script je devrais y arriver sans trop de pb. Mais c'est une feinte à mon pb
. Doit bien y avoir moyen.
un moyen pour quoi ? pour tout compliquer ?
Si j'ai râté un épisode, merci de me réexpliquer, comme à un neu² !
Tiesn c'est marrant un an et demi après je me retrouve avec le même pb à résoudre et je sais toujours pas comment faire.
Je suis pas certain d'etre à la page concernant ton problème, mais plutot que d'utiliser une syntaxe genre
CODE |
if(document.formulaire.element.checked==true) {...}
|
pourquoi ne pas utiliser
CODE |
if(document.getElementById('element').checked==true) {...}
|
tout en collant un ID de type string+valeur genre id="check<?=$increment;?>" dans chaque input de ty checkbox ou option.
note :
si mes souvenirs sont bons, la propriétés pour acceder en lecture ecriture aux checkboxes est document.getElementById('element').checked et pour un bouton radio document.getElementById('element').value.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.