j'ai un script JS qui lance des téléchargements et affiche des messages,
en utilisant 2 iframes.
Or, je ne peux pas connaitre par avance le nombre de fichiers à
télécharger : l'utilisateur fait son choix en cochant des cases dans une
liste qu'on lui présente avant.
Ces cases se nomment : file1, file2, file3, etc., filen
Pour l'instant, ne sachant pas comment faire pour récupérer les cases
cochées sans en connaître le nombre, j'ai écrit un script qui teste
l'existence de 7 cases.... ce qui donne (je ne mets que les 3 premiers
stades...) :
Ce que je voudrais mais ne sais pas faire (malgré des tentatives et pas
mal de lecture) :
la fonction bouclerait sur tous les champs (cases) dont le nom est
"file"+n (file1, file2, etc.), quel que soit leur nombre; et bien
sûr, du coup, il faut que les paramètres soient modifiés en fonction de
l'index de chaque champ/case... (suis-je clair ?)
une seule boucle bien conçue devrait donc suffire, je crois.
var n = document.tonForm.elements["files[]"].length ; for ( i = 0 ; i < n ; i++ ) { if ( document.tonForm.elements["files[]"][i].checked ) { // Affichage de la valeur des checkboxes cochées alert(document.tonForm.elements["files[]"][i].value) ; } }
une seule boucle bien conçue devrait donc suffire, je crois.
Oui, si le <form> l'est également.
Tu peux créer des champs de ce style :
var n = document.tonForm.elements["files[]"].length ;
for ( i = 0 ; i < n ; i++ ) {
if ( document.tonForm.elements["files[]"][i].checked ) {
// Affichage de la valeur des checkboxes cochées
alert(document.tonForm.elements["files[]"][i].value) ;
}
}
var n = document.tonForm.elements["files[]"].length ; for ( i = 0 ; i < n ; i++ ) { if ( document.tonForm.elements["files[]"][i].checked ) { // Affichage de la valeur des checkboxes cochées alert(document.tonForm.elements["files[]"][i].value) ; } }
var n = document.tonForm.elements["files[]"].length ; for ( i = 0 ; i < n ; i++ ) { if ( document.tonForm.elements["files[]"][i].checked ) { // Affichage de la valeur des checkboxes cochées alert(document.tonForm.elements["files[]"][i].value) ; } }
ok je crois que c'est clair.
Merci.
Sébastien <nospam@for.me> wrote:
une seule boucle bien conçue devrait donc suffire, je crois.
Oui, si le <form> l'est également.
Tu peux créer des champs de ce style :
var n = document.tonForm.elements["files[]"].length ;
for ( i = 0 ; i < n ; i++ ) {
if ( document.tonForm.elements["files[]"][i].checked ) {
// Affichage de la valeur des checkboxes cochées
alert(document.tonForm.elements["files[]"][i].value) ;
}
}
var n = document.tonForm.elements["files[]"].length ; for ( i = 0 ; i < n ; i++ ) { if ( document.tonForm.elements["files[]"][i].checked ) { // Affichage de la valeur des checkboxes cochées alert(document.tonForm.elements["files[]"][i].value) ; } }
Précision... Tous les crochets en rapport avec le name des checkboxes sont inutiles si tu ne fais pas de traitement PHP.
par contre, là je ne comprends pas bien ce que tu veux dire...
Sauf erreur, les [] permettent de récupérer ensuite un tableau indexé en php.
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les checkboxes aient des noms distincts (et donc distinguables par quelque traitement que ce soit) quel que soit leur nombre ?
Précision... Tous les crochets en rapport avec le name des checkboxes
sont inutiles si tu ne fais pas de traitement PHP.
par contre, là je ne comprends pas bien ce que tu veux dire...
Sauf erreur, les [] permettent de récupérer ensuite un tableau indexé en
php.
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les
checkboxes aient des noms distincts (et donc distinguables par quelque
traitement que ce soit) quel que soit leur nombre ?
Précision... Tous les crochets en rapport avec le name des checkboxes sont inutiles si tu ne fais pas de traitement PHP.
par contre, là je ne comprends pas bien ce que tu veux dire...
Sauf erreur, les [] permettent de récupérer ensuite un tableau indexé en php.
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les checkboxes aient des noms distincts (et donc distinguables par quelque traitement que ce soit) quel que soit leur nombre ?
Précision... Tous les crochets en rapport avec le name des checkboxes sont inutiles si tu ne fais pas de traitement PHP.
par contre, là je ne comprends pas bien ce que tu veux dire...
Sauf erreur, les [] permettent de récupérer ensuite un tableau indexé en php.
Peut être bien qu'oui ;-)
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les checkboxes aient des noms distincts (et donc distinguables par quelque traitement que ce soit) quel que soit leur nombre ?
? ? ? toutes tes checkboxes s'apelleront pareil "files[]" si tu les avais nommées "truc" sans crochet c'eut été le mme résultat l'array de ces noms se faisant automatiquement par le navigateur d'où : document.monForm.files[][0] devrait âtre la 1ière checkboxe rencontrée d'où : ce devrait foutre le caca dans le js qui ne comprend + rien à tous ces crochets d'ou : on emploie document.monForm.elements['files[]'][0] = 1er élément du tableau "files[]" lui-même, élément du tableau "monForm" ou directement document.monForm['files[]'][0] 1er élément du tableau "files[]" du tabeau "monForm" du tableau "document"
Précision... Tous les crochets en rapport avec le name des checkboxes
sont inutiles si tu ne fais pas de traitement PHP.
par contre, là je ne comprends pas bien ce que tu veux dire...
Sauf erreur, les [] permettent de récupérer ensuite un tableau indexé en
php.
Peut être bien qu'oui ;-)
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les
checkboxes aient des noms distincts (et donc distinguables par quelque
traitement que ce soit) quel que soit leur nombre ?
? ? ?
toutes tes checkboxes s'apelleront pareil "files[]"
si tu les avais nommées "truc" sans crochet c'eut été le mme résultat
l'array de ces noms se faisant automatiquement par le navigateur
d'où : document.monForm.files[][0]
devrait âtre la 1ière checkboxe rencontrée
d'où : ce devrait foutre le caca dans le js
qui ne comprend + rien à tous ces crochets
d'ou : on emploie
document.monForm.elements['files[]'][0]
= 1er élément du tableau "files[]"
lui-même, élément du tableau "monForm"
ou directement
document.monForm['files[]'][0]
1er élément du tableau "files[]" du tabeau "monForm" du tableau "document"
Précision... Tous les crochets en rapport avec le name des checkboxes sont inutiles si tu ne fais pas de traitement PHP.
par contre, là je ne comprends pas bien ce que tu veux dire...
Sauf erreur, les [] permettent de récupérer ensuite un tableau indexé en php.
Peut être bien qu'oui ;-)
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les checkboxes aient des noms distincts (et donc distinguables par quelque traitement que ce soit) quel que soit leur nombre ?
? ? ? toutes tes checkboxes s'apelleront pareil "files[]" si tu les avais nommées "truc" sans crochet c'eut été le mme résultat l'array de ces noms se faisant automatiquement par le navigateur d'où : document.monForm.files[][0] devrait âtre la 1ière checkboxe rencontrée d'où : ce devrait foutre le caca dans le js qui ne comprend + rien à tous ces crochets d'ou : on emploie document.monForm.elements['files[]'][0] = 1er élément du tableau "files[]" lui-même, élément du tableau "monForm" ou directement document.monForm['files[]'][0] 1er élément du tableau "files[]" du tabeau "monForm" du tableau "document"
la fonction bouclerait sur tous les champs (cases) dont le nom est "file"+n (file1, file2, etc.), quel que soit leur nombre; et bien sûr, du coup, il faut que les paramètres soient modifiés en fonction de l'index de chaque champ/case... (suis-je clair ?)
Peut-être un truc comme ça...
for(var i=1;;i++) { if(!document.forms['form1'].elements['file'+i]) { break; } else { // des trucs avec // document.forms['form1'].elements['file'+i].value } }
Julien Gautier a dit le 13/09/2004 09:04:
la fonction bouclerait sur tous les champs (cases) dont le nom est
"file"+n (file1, file2, etc.), quel que soit leur nombre; et bien
sûr, du coup, il faut que les paramètres soient modifiés en fonction de
l'index de chaque champ/case... (suis-je clair ?)
Peut-être un truc comme ça...
for(var i=1;;i++)
{
if(!document.forms['form1'].elements['file'+i])
{
break;
}
else
{
// des trucs avec
// document.forms['form1'].elements['file'+i].value
}
}
la fonction bouclerait sur tous les champs (cases) dont le nom est "file"+n (file1, file2, etc.), quel que soit leur nombre; et bien sûr, du coup, il faut que les paramètres soient modifiés en fonction de l'index de chaque champ/case... (suis-je clair ?)
Peut-être un truc comme ça...
for(var i=1;;i++) { if(!document.forms['form1'].elements['file'+i]) { break; } else { // des trucs avec // document.forms['form1'].elements['file'+i].value } }
julien.gautier
@SM wrote:
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les checkboxes aient des noms distincts (et donc distinguables par quelque traitement que ce soit) quel que soit leur nombre ?
? ? ? toutes tes checkboxes s'apelleront pareil "files[]" si tu les avais nommées "truc" sans crochet c'eut été le mme résultat l'array de ces noms se faisant automatiquement par le navigateur
ok, pardon, j'ai fait une confusion...
d'où : document.monForm.files[][0] devrait âtre la 1ière checkboxe rencontrée d'où : ce devrait foutre le caca dans le js qui ne comprend + rien à tous ces crochets d'ou : on emploie document.monForm.elements['files[]'][0] = 1er élément du tableau "files[]" lui-même, élément du tableau "monForm" ou directement document.monForm['files[]'][0] 1er élément du tableau "files[]" du tabeau "monForm" du tableau "document"
ok, je crois que je comprends correctement chaque ligne.
Ces crochets sont donc inutiles (et même presque génants) si l'on s'en tient à JS.
cette fonction scrute l'ensemble des valeurs du tableau "monForm" dans une boucle; pour chaque occurence, il teste son type et sa valeur; par ailleurs, il interdit l'envoi de tout champ texte vide, et attribue la valeur des checkboxes cochées à une variable, selon qu'il s'agisse d'un fichier ou d'une photo.
J'ai bon ?!! ;-)
@SM <stephanemoriaux@wanadoo.fr> wrote:
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les
checkboxes aient des noms distincts (et donc distinguables par quelque
traitement que ce soit) quel que soit leur nombre ?
? ? ?
toutes tes checkboxes s'apelleront pareil "files[]"
si tu les avais nommées "truc" sans crochet c'eut été le mme résultat
l'array de ces noms se faisant automatiquement par le navigateur
ok, pardon, j'ai fait une confusion...
d'où : document.monForm.files[][0]
devrait âtre la 1ière checkboxe rencontrée
d'où : ce devrait foutre le caca dans le js
qui ne comprend + rien à tous ces crochets
d'ou : on emploie
document.monForm.elements['files[]'][0]
= 1er élément du tableau "files[]"
lui-même, élément du tableau "monForm"
ou directement
document.monForm['files[]'][0]
1er élément du tableau "files[]" du tabeau "monForm" du tableau "document"
ok, je crois que je comprends correctement chaque ligne.
Ces crochets sont donc inutiles (et même presque génants) si l'on s'en
tient à JS.
cette fonction scrute l'ensemble des valeurs du tableau "monForm" dans
une boucle; pour chaque occurence, il teste son type et sa valeur; par
ailleurs, il interdit l'envoi de tout champ texte vide, et attribue la
valeur des checkboxes cochées à une variable, selon qu'il s'agisse d'un
fichier ou d'une photo.
Mais dans le cas présent, n'est-ce pas aussi ce qui permet que les checkboxes aient des noms distincts (et donc distinguables par quelque traitement que ce soit) quel que soit leur nombre ?
? ? ? toutes tes checkboxes s'apelleront pareil "files[]" si tu les avais nommées "truc" sans crochet c'eut été le mme résultat l'array de ces noms se faisant automatiquement par le navigateur
ok, pardon, j'ai fait une confusion...
d'où : document.monForm.files[][0] devrait âtre la 1ière checkboxe rencontrée d'où : ce devrait foutre le caca dans le js qui ne comprend + rien à tous ces crochets d'ou : on emploie document.monForm.elements['files[]'][0] = 1er élément du tableau "files[]" lui-même, élément du tableau "monForm" ou directement document.monForm['files[]'][0] 1er élément du tableau "files[]" du tabeau "monForm" du tableau "document"
ok, je crois que je comprends correctement chaque ligne.
Ces crochets sont donc inutiles (et même presque génants) si l'on s'en tient à JS.
cette fonction scrute l'ensemble des valeurs du tableau "monForm" dans une boucle; pour chaque occurence, il teste son type et sa valeur; par ailleurs, il interdit l'envoi de tout champ texte vide, et attribue la valeur des checkboxes cochées à une variable, selon qu'il s'agisse d'un fichier ou d'une photo.
J'ai bon ?!! ;-)
julien.gautier
Julien Gautier wrote:
Sébastien wrote:
une seule boucle bien conçue devrait donc suffire, je crois.
Oui, si le <form> l'est également. Tu peux créer des champs de ce style :
var n = document.tonForm.elements["files[]"].length ; for ( i = 0 ; i < n ; i++ ) { if ( document.tonForm.elements["files[]"][i].checked ) { // Affichage de la valeur des checkboxes cochées alert(document.tonForm.elements["files[]"][i].value) ; } }
ok je crois que c'est clair.
Bon, en fait, c'était pas si clair que ça... mais maintenant ça l'est davantage après les explications de Stéphane.
Merci encore.
Julien Gautier <julien.gautier@wanadoo.fr> wrote:
Sébastien <nospam@for.me> wrote:
une seule boucle bien conçue devrait donc suffire, je crois.
Oui, si le <form> l'est également.
Tu peux créer des champs de ce style :
var n = document.tonForm.elements["files[]"].length ;
for ( i = 0 ; i < n ; i++ ) {
if ( document.tonForm.elements["files[]"][i].checked ) {
// Affichage de la valeur des checkboxes cochées
alert(document.tonForm.elements["files[]"][i].value) ;
}
}
ok je crois que c'est clair.
Bon, en fait, c'était pas si clair que ça... mais maintenant ça l'est
davantage après les explications de Stéphane.
var n = document.tonForm.elements["files[]"].length ; for ( i = 0 ; i < n ; i++ ) { if ( document.tonForm.elements["files[]"][i].checked ) { // Affichage de la valeur des checkboxes cochées alert(document.tonForm.elements["files[]"][i].value) ; } }
ok je crois que c'est clair.
Bon, en fait, c'était pas si clair que ça... mais maintenant ça l'est davantage après les explications de Stéphane.
Merci encore.
Ces crochets sont donc inutiles (et même presque génants) si l'on s'en tient à JS.
Oui, les crochets, bien que non formellement interdits en JS, sont à éviter le + possible à ne garder que si on mâtine avec du php, si on ne veut pas trop se laisser piéger
Variante :
<couic>
J'ai bon ?!! ;-)
Oui Oui 20/20 :-))
Pour ton pb perso j'imagine qu'un truc du genre pourrait faire :
Exemple avec 2 dossiers [serie_1] et [serie_2] chacun contenant ses textes (html) et ses images (jpeg) sous la forme message_x.htm photo_x.jpg Les fichiers php devront se débrouiller avec en variable (ou aray?) $files des valeurs telles que "files[x]" (certainement à corriger... j'su pas fortiche en php) Dans cet exemple une variante tout JavaScript est proposée puisque de ttes façons sans JS pas de PHP non plus !
Ces crochets sont donc inutiles (et même presque génants) si l'on s'en
tient à JS.
Oui, les crochets, bien que non formellement interdits en JS,
sont à éviter le + possible
à ne garder que si on mâtine avec du php,
si on ne veut pas trop se laisser piéger
Variante :
<couic>
J'ai bon ?!! ;-)
Oui Oui 20/20 :-))
Pour ton pb perso j'imagine qu'un truc du genre pourrait faire :
Exemple avec 2 dossiers [serie_1] et [serie_2]
chacun contenant ses textes (html) et ses images (jpeg)
sous la forme
message_x.htm
photo_x.jpg
Les fichiers php devront se débrouiller avec
en variable (ou aray?) $files des valeurs telles que "files[x]"
(certainement à corriger... j'su pas fortiche en php)
Dans cet exemple une variante tout JavaScript est proposée
puisque de ttes façons sans JS pas de PHP non plus !
Ces crochets sont donc inutiles (et même presque génants) si l'on s'en tient à JS.
Oui, les crochets, bien que non formellement interdits en JS, sont à éviter le + possible à ne garder que si on mâtine avec du php, si on ne veut pas trop se laisser piéger
Variante :
<couic>
J'ai bon ?!! ;-)
Oui Oui 20/20 :-))
Pour ton pb perso j'imagine qu'un truc du genre pourrait faire :
Exemple avec 2 dossiers [serie_1] et [serie_2] chacun contenant ses textes (html) et ses images (jpeg) sous la forme message_x.htm photo_x.jpg Les fichiers php devront se débrouiller avec en variable (ou aray?) $files des valeurs telles que "files[x]" (certainement à corriger... j'su pas fortiche en php) Dans cet exemple une variante tout JavaScript est proposée puisque de ttes façons sans JS pas de PHP non plus !