par
sadeq » 23 sept. 2008, 22:47
Bonjour tout le monde,
Tu sais, YpLee, que : quand un champ html est nommé avec un "id", JavaScript peut le référencer par document.getElementById("idchamp") et quand ce champ fait partie d'un formulaire et est nommé avec un "name" il est référencé par le biais de son formulaire par nomformulaire.nomchamp ou document.forms("nomformulaire").elements("nomchamp") ou encore par document.getElementsByName("nomchamp")
Maintenant il faut savoir que si le nom ou l'id d'un champ est de type "nomchamp[index]" comme : Training[0], Training[1], ... JavaScript le référence par ce nom tel qu'il est c'est à dire "nomchamp[index]" et il ne le considère pas comme un tableau (contrairement à ce qu'on peut penser) et donc, il ne connait pas le nom "Training" tout seul.
Ce qui veut dire, que si tu as un champ nommé "Training[0]" il est référencé en JavaScript par : document.forms["F"].elements["Training[0]"]
Toutefois, si tu veux considérer "Training" comme un tableau sous Javascript, à ce moment là, il faut nommer tous les champs à regrouper avec le même nom générique comme "Training" ou "Training[]" (sans spécifier d'index).
Mais, il est préférable de nommer un tableau avec doubles crochets [] vides pour que PHP le considére aussi comme tableau.
Voici un exemple :
Code : Tout sélectionner
<form name="F" action="traitement.php" onsubmit="return validerForm();" >
<input type="checkbox" name="Training[]" value="PHP 5" /> PHP 5 <br />
<input type="checkbox" name="Training[]" value="MySQL" /> MySQL <br />
<input type="checkbox" name="Training[]" value="JavaScript" /> JavaScript <br />
<input type="submit" name="valider" value="Valider" />
</form>
<script type="text/javascript">
// Valider les données du form
function validerForm()
{
// Référence aux champs Training[]
var tableau = document.forms["F"].elements["Training[]"];
// Parcourir le tableau
for (i=0; i < tableau.length; i++)
{
if (tableau[i].checked)
{
return true; // valide si au moins une case cochée
}
}
// Erreur
alert("Veuillez en choisir au moins un !");
return false;
}
</script>
Bonjour tout le monde,
Tu sais, YpLee, que : quand un champ html est nommé avec un "id", JavaScript peut le référencer par document.getElementById("idchamp") et quand ce champ fait partie d'un formulaire et est nommé avec un "name" il est référencé par le biais de son formulaire par nomformulaire.nomchamp ou document.forms("nomformulaire").elements("nomchamp") ou encore par document.getElementsByName("nomchamp")
Maintenant il faut savoir que si le nom ou l'id d'un champ est de type "nomchamp[index]" comme : Training[0], Training[1], ... JavaScript le référence par ce nom tel qu'il est c'est à dire "nomchamp[index]" et il ne le considère pas comme un tableau (contrairement à ce qu'on peut penser) et donc, il ne connait pas le nom "Training" tout seul.
Ce qui veut dire, que si tu as un champ nommé "Training[0]" il est référencé en JavaScript par : document.forms["F"].elements["Training[0]"]
Toutefois, si tu veux considérer "Training" comme un tableau sous Javascript, à ce moment là, il faut nommer tous les champs à regrouper avec le même nom générique comme "Training" ou "Training[]" (sans spécifier d'index).
Mais, il est préférable de nommer un tableau avec doubles crochets [] vides pour que PHP le considére aussi comme tableau.
Voici un exemple :
[code]
<form name="F" action="traitement.php" onsubmit="return validerForm();" >
<input type="checkbox" name="Training[]" value="PHP 5" /> PHP 5 <br />
<input type="checkbox" name="Training[]" value="MySQL" /> MySQL <br />
<input type="checkbox" name="Training[]" value="JavaScript" /> JavaScript <br />
<input type="submit" name="valider" value="Valider" />
</form>
<script type="text/javascript">
// Valider les données du form
function validerForm()
{
// Référence aux champs Training[]
var tableau = document.forms["F"].elements["Training[]"];
// Parcourir le tableau
for (i=0; i < tableau.length; i++)
{
if (tableau[i].checked)
{
return true; // valide si au moins une case cochée
}
}
// Erreur
alert("Veuillez en choisir au moins un !");
return false;
}
</script>
[/code]