Erreur de validation name="value[]" (POST tableaux)
Résolu/Fermé
Xidy
Messages postés
82
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
19 juillet 2014
-
11 déc. 2012 à 10:30
Xidy Messages postés 82 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 19 juillet 2014 - 13 déc. 2012 à 15:00
Xidy Messages postés 82 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 19 juillet 2014 - 13 déc. 2012 à 15:00
A voir également:
- Erreur de validation name="value[]" (POST tableaux)
- Erreur 0x80070643 - Accueil - Windows
- Ethernet n'a pas de configuration ip valide - Guide
- Tableaux croisés dynamiques - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Temps validation annonce le bon coin - Forum Hotmail / Outlook.com
4 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
11 déc. 2012 à 10:47
11 déc. 2012 à 10:47
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.
Xidy
Messages postés
82
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
19 juillet 2014
3
Modifié par Xidy le 11/12/2012 à 11:02
Modifié par Xidy le 11/12/2012 à 11:02
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.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
11 déc. 2012 à 13:37
11 déc. 2012 à 13:37
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>
Xidy
Messages postés
82
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
19 juillet 2014
3
13 déc. 2012 à 15:00
13 déc. 2012 à 15:00
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!