Help - Search - Member List - Calendar
Full Version: Problème Html
OpenSpace > Zone Ordinateurs > Programmation
Ryle
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.
RICO
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>




Ryle
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é.
Guepi
Dans la balise head
CODE
<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>




Ryle
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.



Guepi
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>




Ryle
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.
Guepi
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 ?
Ryle
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 wink.gif . Doit bien y avoir moyen.
Guepi
un moyen pour quoi ? pour tout compliquer ? huh.gif

Si j'ai râté un épisode, merci de me réexpliquer, comme à un neu² ! wink.gif
Ryle
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.
RICO
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.
Invision Power Board © 2001-2024 Invision Power Services, Inc.