Prob boucle et nom

Signaler
Messages postés
110
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
2 avril 2010
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour!

Voila j'ai voulu faire un truc tout con, mais je dois me tromper quelquepart :

    for (var i=1; i<5; i++) {
        if (document.modif.fichier[i].value != "") {
            document.modif.img[i].value = "oui";
        }
        else {
            document.modif.img[i].value = "non";
        }
    }
...
...

J'ai 4 input file comme ça, mais avec cette fonction, il ne me prend pas les valeurs de fichier[1], il me dit que document.modif.fichier a la valeur null ou n'est pas objet.

Si qqun peut m'éclairer

Merci d'avance!

11 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

je suppose qu'il y a ficher[1], fichier[2]...
mets le même name. fichier

...

s'il faut qu'ils aient [ ] ( dans le name pour un array php, sinon aucun intéret !!! )


...
for (var i=1; i<document.modif["fichier[]"].length; i++) {
        if (document.modif["fichier[]"][i].value != "") {





<hr />



Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />
Messages postés
110
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
2 avril 2010

Ca a l'air de fonctionner, mais pas lors de la recuperation de la valeur en php :

$name_file = $_FILES['fichier'.$i]['name'];

J'ai mis ça :
for (var i=0; i<document.modif["fichier"].length; i++) {
        if (document.modif["fichier"][i].value != "") {
            document.modif["img"][i].value = "oui";
        }
        else {
            document.modif["img"][i].value = "non";
        }
    }

Mais ce ne doit pas être document.modif["fichier"][i].value pour que php cherche fichier1 avec ce que j'ai mis php cherche fichier[1] non?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
for (var i=0; i<document.modif["fichier[]"].length; i++) {




    coté php, pour vérifier : print_r ($_POST["fichier"]);
    ça doit baigner...
   
<hr />


Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
j'ai retrouvé mes notes coté php :

<?php
foreach ($_FILES["fichier"]["error"] as $key => $error)
{
   if ($error == UPLOAD_ERR_OK)
    {
       $tmp_name = $_FILES["fichier"]["tmp_name"][$key];
       $name = $_FILES["fichier"]["name"][$key];
       move_uploaded_file($tmp_name, "data/$name");
   }
}
?>

ou pas loin, à tester
<hr />


Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />
Messages postés
110
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
2 avril 2010

Document.modif.fichier[].length a la valeur null ou n'est pas objet :/

Cote php j'ai une boucle aussi:

for ($i= 1; $i<5; $i++) {
    if ($_POST['img'.$i] == "oui") {
        $content_dir = 'references/'; // dossier où sera déplacé le fichier

$tmp_file = $_FILES['fichier'.$i]['tmp_name'];

if( !is_uploaded_file($tmp_file) )
{
    exit("Le fichier est introuvable");
}

// on vérifie maintenant l'extension
$type_file = $_FILES['fichier'.$i]['type'];

if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
    exit("Le fichier n'est pas une image");
}

// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier'.$i]['name'];

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
    exit("Impossible de copier le fichier dans $content_dir");
}

$camera[$i]="
";

    }
    elseif ($_POST['img'.$i] == "non") {
        $camera[$i] = "";
    }
}
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
faut respecter la syntaxe...
   

for (var i=0; i<document.modif["fichier
[]
"].length; i++) {

et pour php, si soucis, voir chez phpcs.com, ce sera plus mieux.


<hr />



Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
attention aux espaces en trop...
for (var i=0; i<document.modif["fichier[]"].length; i++) {
<hr />


Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />
Messages postés
110
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
2 avril 2010

C'est exactement ce que j'ai mis!

  for (var i=0; i<document.modif["fichier[]"].length; i++) {
        if (document.modif["fichier"][i].value != "") {
            document.modif["img"][i].value = "oui";
        }
        else {
            document.modif["img"][i].value = "non";
        }
    }
...
...

...
...

...
...

etc

J'ai pas de soucis en php

Juste en js :/, je voudrais jsute avoir fichier1, img1, fichier2, img2...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
>>

C'est exactement ce que j'ai mis!



ben oui... mais ce n'est pas  ce que tu disais     >> Document.modif.fichier[].length

                mais dans les name ????    fichier[] à la place de fichier , non ?
>>J'ai pas de soucis en php
    ah ??? j'avais cru comprendre : >>...mais pas lors de la recuperation de la valeur en php
    tant mieux alors.
<hr />
Cordialement            Bul         [mon Site]     [M'écrire]  

<hr />
Messages postés
110
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
2 avril 2010

Ben oui le soucis en php c'est qu'il recupere la valeur de document.modif.fichier1 et document.modif.fichier[1]

le fait de mettre le name a fichier[] me donner fichier1 ou fichier[1] ??
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
le plus simple c'est d'essayer.
regardes l'exemple fourni.
le fait de mettre des [] dans les name envoie un array au php.
<hr />


Cordialement            Bul         [mon Site]     [M'écrire]  




<hr />