bonjour, je viens de me mettre a jquery (disons que j'ai des notions ^^) et j'avais un peu peur de m'y mettre parce que j'aime pas trop javascript et pensait que le developpement etait similaire...
bref, je suis sur un projet de site où l'on peut uploader des photos pour créer un album.
j'ai donc un fomulaire en deux partie : l'une pour décrire l'album, l'autre pour mettre les photos, ce sont une série de champs de type file avec deux champs texte (nom et description) associé. j'ai 4 champs par défaut (pour avoir un minimum de photo dans l'album) et je peux ajouter autant de champs que je veux avec un lien "ajouter de champs", dont la fonction a été developpée en jquery (que j'ai compris, peu apres avoir regarder les tutos GA) par mon partenaire.
Je suis actuellement sur la partie traitement (pour les uploader et vérifier les champs) j'ai donc ma fonction jquery qui peut me trouver combien j'ai de champs en tout (les 4 originaux + ceux créés), qui me trouve le bon résultat, que je stocke dans une variable, ensuite, je fais juste une boucle de 1 à nbChamps (qui marche bien : elle fait le bon nombre de tours) mais qui m'affiche les bonnes valeurs des champs 1 à 4 et pour les autres m'affiche 'undefined'...

j'ai regardé le code source généré dans firefox : il me trouve les 4 champs par défaut et aucun autre, j'ai regardé également avec firebug, qui me les trouve tous !
comment puis je faire pour pouvoir vérifier mes champs sachant que si la page est rechargée (on envoie le formulaire mais il y a des erreurs), les champs 1 à 4 sont là avec les valeurs mais pas les champs ajoutés et qu'il seraient préférable que les champs générés restent (avec leur valeur), c'est pour ca que je voulais utiliser javascript pour cette fois ci...

je précise que j'utilise cakephp pour développer cette fonctionalité et que s'il est possible avec javascript de transmettre le nombre de champs actuel à php pour qu'il régénere le bon nombre de champs alors je serais pas mal avancé voir même résolu le probleme :D

merci a vous et s'il vous manque des précisions, n'hésitez pas !

ps : une fois le formulaire envoyé en php (page rechargée avec erreur et nombre de champ à nouveau egal a 4), quand je fais debug($this->data), j'ai le bon nombre de champ de fichier dans ma variable, c'est deja pas mal :D

1 réponse


Je te conseille ne pas compter tes champs en js mais en php... Donne à tes champs un postfixe numéroté de cette façon :

<input name="champ[0]">

Et ajoute en js des champ en incrémentant l'indice...

de cette manière, tu peux récupérer les données avec un boucle foreach... Pas besoin de les compter en JS.