Fin de boucle

Résolu
sfc2000 -  
 sfc2000 -
Bonjour,

J'ai un formulaire qui récupère des données (env. 1000), avec le code actuel, le form récupère bien les données mais pour les insérer dans las base mysql, je dois cliquet sur "envoyer" 1 par 1 :-( mon problème est que je voudrais tous envoyer en même temps.

Voici mon code

<? $rep = "app/a/";
$dir = opendir($rep);

function dd($date) {
   return date("d/m/Y H:i:s",$date);
}

while ($f = readdir($dir)) {
   if(is_file($rep.$f)) {
?>	   
<html>
<form method="POST" action="add.php">
<center>
<input type="text" name="nom" size="20" value="<? echo "".$f; ?>" maxlength="35">
<input type="text" name="poids" size="20" value="<? echo "".filesize($rep.$f); ?>" maxlength="70"> 
<input type="text" name="date" size="20" value="<? echo "".dd(filemtime($rep.$f)); ?>" maxlength="70">
<input type="submit" value="Envoyer" name="envoyer">
</center>
</form>
</html> 
<?
}
}

closedir($dir); ?>


Merci d'avance de votre aide
Configuration: Windows 7 / Firefox 3.5.6

7 réponses

  1. totofrancois Messages postés 420 Statut Membre 44
     
    bonjour

    pourquoi tu ne fai pas un unique formulaire ?

    avec un code du genre :

    pour tout mes fichier faire add
    0
    1. sfc2000
       
      C'est honteux de ma part car c'est la base mais je sais même plus comment m'y prendre pour ca :-(
      0
  2. incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
     
    Salut,

    Ton pb vient du fait que tu inclus le formulaire et le bouton d'envoi dans la boucle alors que finalement la boucle ne doit concerner que tes champs texte. Le tout est de sortir ton formulaire et le bouton d'envoi de la boucle :

    <? $rep = "app/a/";
    $dir = opendir($rep);

    function dd($date) {
    return date("d/m/Y H:i:s",$date);
    }
    ?>

    <html>
    <form method="POST" action="add.php">

    <?php
    while ($f = readdir($dir)) {
    if(is_file($rep.$f)) {
    ?>
    <center>
    <input type="text" name="nom" size="20" value="<? echo "".$f; ?>" maxlength="35">
    <input type="text" name="poids" size="20" value="<? echo "".filesize($rep.$f); ?>" maxlength="70">
    <input type="text" name="date" size="20" value="<? echo "".dd(filemtime($rep.$f)); ?>" maxlength="70">
    <?php
    }
    }
    ?>
    <input type="submit" value="Envoyer" name="envoyer">
    </center>
    </form>
    </html>
    <?php
    closedir($dir); ?>

    cdlt

    IC
    0
  3. sfc2000
     
    merci mais malheureusement ca fonctionne pas car là pas de moyen pour valider :-(
    0
  4. incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
     
    Salut,

    je comprend pas trop... le bouton submit doit poster normalement ton formulaire. Par contre je ne sais pas ce qu'il transmet si tous les champs ont le même nom. Si j'ai bonne mémoire tu peux poster un tableau contenant la valeur de chaque champ qui porte le même nom si tu écris le nom du champ suivi de [] pour indiquer qu'il s'agit d'un tableau. Et ta méthode POST récupère alors des tableaux qu'il faut parcourir pour obtenir les données.

    Cdlt
    IC
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sfc2000
     
    j ai essayé mis les [] dans le codes du coup ca me stoque "array" dans la base :-/ je vais chercher encore merci pour l'aide en tous cas
    0
  7. incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
     
    Oui c normal.

    En fait, cote PHP, il faut parcourir chaque tableau :

    un truc du genre :

    foreach ($_POST as $key => $valeur)
    {
    if(is_array($valeur)
    {
    foreach ($valeur as $cle => $donnee)
    {
    //ton traitement
    echo $cle . ' : ' . $donnee . '<br>';
    }
    }
    else
    {
    echo $key . ' : ' . $valeur . '<br>';
    }
    }

    sinon si tu veux avoir une vue directe de à quoi ressemble ton $_POST, tu peux utiliser :
    echo '<pre>';
    print_r($_POST);
    echo '<pre>';

    Cdlt

    IC
    0
  8. sfc2000
     
    Merci beaucoup pour l'aide j'ai trouvé la solution grace a tes conseils

    merci

    Salutations
    0