[PHP/JS] Checkbox name="resa[]"
Résolu
axel50397
Messages postés
124
Statut
Membre
-
axel50397 Messages postés 124 Statut Membre -
axel50397 Messages postés 124 Statut Membre -
Bonjour à tous !
Voila mon petit souci:
- J'ai un formulaire en HTML (généré par PHP) contenant une ou plusieurs checkbox selon les réponses de ma BDD.
- J'ai également un script javascript qui (onsubmit) vérifie le nombre de checkbox cochées. Si aucune, message d'erreur, return false. Si au moins une, rien, envoie du formulaire.
- Ne projet est un gestionnaire de vidéoclub, quand on fait une recherche (exemple: Star Wars), ne pouvant connaitre le nombre de réponses, j'utilise donc comme nom pour les box: name="resa[]".
- Mon problème est que quand il n'y a QU'UNE seule checkbox, le JS ne détecte aucune checkbox (cochée ou pas), et je pense que ça vient du nom des box...
Auriez-vous une petite idée de comment remédier à ça, comment nommer mes box, ou une alternative...
Voici ma situation actuelle pour une seule réponse:
PS: Aucun problème pour plus d'une réponse, même si je ne coche qu'une seule...
Merci pour votre aide !
Voila mon petit souci:
- J'ai un formulaire en HTML (généré par PHP) contenant une ou plusieurs checkbox selon les réponses de ma BDD.
- J'ai également un script javascript qui (onsubmit) vérifie le nombre de checkbox cochées. Si aucune, message d'erreur, return false. Si au moins une, rien, envoie du formulaire.
- Ne projet est un gestionnaire de vidéoclub, quand on fait une recherche (exemple: Star Wars), ne pouvant connaitre le nombre de réponses, j'utilise donc comme nom pour les box: name="resa[]".
- Mon problème est que quand il n'y a QU'UNE seule checkbox, le JS ne détecte aucune checkbox (cochée ou pas), et je pense que ça vient du nom des box...
Auriez-vous une petite idée de comment remédier à ça, comment nommer mes box, ou une alternative...
Voici ma situation actuelle pour une seule réponse:
function test_box(chkbox) {
var msg = "S'il n'y a pas au moins une case cochée,\nComment effectuer la réservation ??";
for (i=0; i<chkbox.length; i++) {
if(chkbox[i].checked) {
msg = "";
break;
}
}
if (msg == "") return(true);
else {
alert(msg);
return(false);
}
}
<form action="resa.php?page=add" method="post" name="search_result" onsubmit="return test_box( elements['resa[]'] );">
<table class="result" cellspacing="10px">
<tr>
<th>Titre</th>
<th>Réservation</th>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><strong>Star-Wars III</strong><br /><cite>George LUCAS</cite></td>
<td><input type="checkbox" name="resa[]" value="3" /></td>
</tr>
</table>
<br /><br />
<input type="submit" value="Réserver" />
<form>
PS: Aucun problème pour plus d'une réponse, même si je ne coche qu'une seule...
Merci pour votre aide !
A voir également:
- [PHP/JS] Checkbox name="resa[]"
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Cannot find required map name - Forum BIOS
- Arrondi js ✓ - Forum Windows
- Name changer - Télécharger - Divers Utilitaires
1 réponse
function test_box(chkbox, dmsg) {
var msg = "S'il n'y a pas au moins une case cochée,\nComment effectuer la "+dmsg+" ??";
if (chkbox.length)
{
for (i=0; i<chkbox.length; i++) {
if(chkbox[i].checked)
return(true);
}
}
else
{
if (chkbox.checked)
return(true);
}
alert(msg);
return(false);
}
L'attribut length n'existe pas quand il n'y a qu'un seul élément.
Merci à Tuxkowo =)