Erreur de validation name="value[]" (POST tableaux)
Résolu
Xidy
Messages postés
82
Date d'inscription
Statut
Membre
Dernière intervention
-
Xidy Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Xidy Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je tente désespérément de résoudre mon problème de validation jQuery lorsque j'ai un name="value[]" (pour passer des tableaux en POST )
Je reçoit de mon plugin (le jquery.validationEngine) un unrecognized expression [name=envois[]]
Une idée pour obtenir ma validation correctement? (petite précision, elle marche lorsque je fais des POST classiques comme name="nom"
Merci ;-)
Je tente désespérément de résoudre mon problème de validation jQuery lorsque j'ai un name="value[]" (pour passer des tableaux en POST )
Je reçoit de mon plugin (le jquery.validationEngine) un unrecognized expression [name=envois[]]
Une idée pour obtenir ma validation correctement? (petite précision, elle marche lorsque je fais des POST classiques comme name="nom"
Merci ;-)
A voir également:
- Erreur de validation name="value[]" (POST tableaux)
- Ethernet n'a pas de configuration ip valide - Guide
- Post it mac ✓ - Forum MacOS
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
4 réponses
en javascript on ne peut pas mettre de name="xxxx[]"
les crochets ont d'autres fonctionnalités en javascript.
les crochets ont d'autres fonctionnalités en javascript.
Le problème c'est que j'ai besoin de ces crochets.
J'ai un tableau généré depuis une requête mysql ou je peux modifier chaque case (tableau d'adition ligne par ligne) et je récupère le tout avec un POST.
Puis je fais un foreach sur par exemple "envois" si j'ai name="envois[]"
Maintenant si je peux réaliser la même chose avec mon post sans utiliser [] je suis preneur mais jusque là je n'ai rien trouvé. J'ai même tenté des trucs farfelus du style {} ou... et si je ne mets rien (name="envois") alors mon
foreach ($_POST['envois'] as $envoi => $value)
{
array_push ($tabenvoi, $value);
}
ne marche pas.
J'ai un tableau généré depuis une requête mysql ou je peux modifier chaque case (tableau d'adition ligne par ligne) et je récupère le tout avec un POST.
Puis je fais un foreach sur par exemple "envois" si j'ai name="envois[]"
Maintenant si je peux réaliser la même chose avec mon post sans utiliser [] je suis preneur mais jusque là je n'ai rien trouvé. J'ai même tenté des trucs farfelus du style {} ou... et si je ne mets rien (name="envois") alors mon
foreach ($_POST['envois'] as $envoi => $value)
{
array_push ($tabenvoi, $value);
}
ne marche pas.
une solution en utilisant les id qui doivent être différents pour chaque input
en javascript sans utiliser jQuery
en javascript sans utiliser jQuery
<html> <head> <script type="text/javascript"> function verif_champs(){ //verif champ nom var nom=document.getElementById('nom'); if(nom.value ==""){ alert("Vous devez remplir le champ nom"); nom.focus(); return false; //empeche l'envoi du formulaire } //verif champ prenom var prenom=document.getElementById('prenom'); if(prenom.value ==""){ alert("Vous devez remplir le champ prenom"); prenom.focus(); return false; } //verif des champs envoi //lecture du nombre dans le champ caché var nb_envoi=document.getElementById('nb_envoi').value; for(i=1;i<=nb_envoi;i++){ var champ=document.getElementById('envoi_'+i); if(champ.value==""){ alert("Vous devez remplir tous les champs envoi"); champ.focus(); return false; } } //si on est arrivé la c'est que tout et ok return true; } </script> </head> <form name="form1" id="form1" action="..." method="post" onsubmit="return verif_champs();" > <input type="text" name="nom" id="nom" value="" /> <input type="text" name="prenom" id="prenom" value="" /> <input type="text" name="envoi[]" id="envoi_1" value="" /> <input type="text" name="envoi[]" id="envoi_2" value="" /> <input type="text" name="envoi[]" id="envoi_3" value="" /> <input type="text" name="envoi[]" id="envoi_4" value="" /> <input type="text" name="envoi[]" id="envoi_5" value="" /> <input type="hidden" name="nb_envoi[]" id="nb_envoi" value="<?php echo $nbr; ?>" /> <!-- ci dessus $nbr contient le nombre de lignes envoi tu dois pouvoir le trouver au moment de la generation des input depuis ta BDD (un compteur ou autre)--> <input type="submit" name="envoyer" value="Envoyer" /> </form> </html>
Re, oui en effet c'est la solution, passer par des id, j'ai modifié le jquery.validation pour utiliser les id et c'est bon (reste un ou 2 détails à régler mais c'est exploitable^^)
Par contre je me retrouve avec des
class="validate[required,custom[onlyNumberDecimalAllowed]] text-input nb"
et W3C n'apprécie pas les [ ] je suppose que ça je ne peux pas l'éviter? (sans rechanger tout le js de validation).
Merci!
Par contre je me retrouve avec des
class="validate[required,custom[onlyNumberDecimalAllowed]] text-input nb"
et W3C n'apprécie pas les [ ] je suppose que ça je ne peux pas l'éviter? (sans rechanger tout le js de validation).
Merci!