Tableau dynamique php

Résolu
beubeu -  
 beubeu -
Bonjour,
J'aimerais savoir s'il est possible de créer un tableau dynamique en php pour lequel chaque ligne est un
input type="text"
Le truc c qu'il faut nommer chaque case differemment, et il accepte pas la syntaxe avec les variables phpdu genre
name=$tab[$i]
Si je fais
name=case1
A la fin de ma boucle je ne récupere que la dernière ligne créer, les autres ont été écrasé apres chaque incrémentation, normal vu que le nom est le même.
Enfin bref je voudrais savoir s'il est possible de faire ca en php, j'aimerais eviter le js si possible...
Merci
Configuration: Windows 2000
Firefox 3.0.5

13 réponses

  1. giheller
     
    Bonjour,
    ta demande est peu claire, mais une chose est sûre c'est que chaque input text doit avoir un nom #.
    regarde si cela peut solutionner ton soucis :
    Cela ne vous est jamais arrivé de vous demander si il était possible de créer des variables dynamiques ?
    C'est à dire des variables ayant un nom changeant au cours du script ?

    Et bien c'est tout à fait possible de faire ceci en PHP.

    En effet, grâce aux variables dynamiques vous allez pouvoir utiliser des noms de variables qui sont eux mêmes (les noms), variables, ce qui veut dire que vous allez utiliser des noms de variables qui sont affectés et utilisés dynamiquement dans votre script.

    D'après ce que l'on vient dire, une variable dynamique serait alors une variable qui aurait comme nom la valeur d'une variable, par exemple $var.
    En effet, si nous définissons la variable $hello, avec en valeur la chaîne de caractères Coucou, on aurait la chose suivante :

    exemple1
    <?php

    $var = 'hello';
    $hello = 'Coucou';
    echo ${$var};
    ?>

    Qui affichera :

    Coucou
    0
  2. beubeu
     
    Re
    Le soucis pour moi ne réside pas la en fait
    Lorsque je veux appeler mes input type="text" avec une variable g une erreur de code.
    Exemple :

    <?php
    $j=0;
    while ($j<=$diff){
    echo '<tr><th>'.$datedfr[$j].'</th>';
    echo "<td><input type=\"text\" name="$var[$j][0].\"></td>";
    echo "<td><input type=\"text\" name="$var[$j][1].\"></td>";
    echo "<td><input type=\"text\" name="$var[$j][2].\"></td>";
    echo "<td><input type=\"text\" name="$var[$j][3].\"></td>";
    $j++;
    }
    ?>

    Il me sort cette erreur la :

    Parse error: parse error, expecting `','' or `';'' in C:\wamp\www\SaisieRepasForm.php on line 79

    Voila mon problème -_-
    Merci
    0
  3. giheller
     
    la ligne 79 est-elle : echo "<td><input type=\"text\" name="$var[$j][0].\"></td>";

    essaie avec ça

    echo "<td><input type='text' name='".$var[$j][0]."'></td>";
    --
    0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    c'est une erreur de syntaxe:

    echo "<td><input type=\"text\" name=\"".$var[$j][0]."\"></td>";
    


    si tu concatènes avec un point il faut le faire de chaque côté de la variable
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. beubeu
     
    Yes bien vu c ca
    Reste plus qu'a utiliser les données ca c faisaible j'crois ^^
    Merci bien en tt cas
    0
  7. beubeu
     
    Recitf
    Plus compliqué que je pensais, impossible de réutiliser mon tableau, je trouve pas pk.
    Voila mon code :

    // Ma boucle
    while ($j<=$diff){
    echo '<tr><th>'.$datedfr[$j].'</th>';
    echo "<td><input type='text' name=".$var[$j][0]."></td>";
    echo "<td><input type='text' name=".$var[$j][1]."></td>";
    echo "<td><input type='text' name=".$var[$j][2]."></td>";
    echo "<td><input type='text' name=".$var[$j][3]."></td>";
    $j++;
    }
    //Affichage des données recup
    echo $var[0][0].'<br>';
    echo $var[0][1].'<br>';
    echo $var[0][2].'<br>';
    echo $var[0][3].'<br>';

    Il semble qu'elle soit vide, une idée?
    0
  8. beubeu
     
    En fait le $_POST prend pas mes variables, comment faire pr les récup?
    0
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    ne pas confondre un script php qui s'execute a chaque appel au serveur et un logiciel qui tourne sur ton pc lui il garde les valeurs alors que le script php ne "s'en souvient plus" entre chaque appel

    donc dans ta page formulaire qd tu creer tes <imput dans la bocle while je suppose que tu utilises un array $var initialisé dans cette page

    il faut donc que dans le script php qui reçoit tu ait ce même $var au début du script et ensuite:

    for($i=0;$i<sizeof($var);$i++){
    echo $_POST[$var[$i][0]]."<br>";
    echo $_POST[$var[$i][2]]."<br>";
    echo $_POST[$var[$i][2]]."<br>";
    echo $_POST[$var[$i][3]]."<br>";
    }
    
    
    0
    1. Beubeu
       
      Merci
      J'essaye ca demain au taf je te tiens au courant
      Bonne soirée
      0
  10. beubeu
     
    Salut,
    Alors pr ta proposition sizeof($var) me renvoie 0, et si je remplace pr un count($tot) qui représente le nombre de ligne du tableau les $_POST n'ont tjs rien, la misère koi -_-
    Merci qd mm
    0
  11. Alain_42 Messages postés 5413 Statut Membre 904
     
    sizeof($var) me renvoie 0

    donnes moi un peu le code d'initialisation du tableau $var

    count($tot)

    count c'est pareil que sizeof et que viens faire ce $tot

    sizeof renvoie le nombre d'éléments de l'array $var
    0
  12. beubeu
     
    Mon tableau var correspondait au nom des input qui constituait le tableau. La taille du tableau dépend de la saisie que l'utilisateur effectue precedemment.
    Pour remedier à ce problème j'ai fait différement. Voila ma solution :

    while ($i<$diff){
    echo "<tr>";
    echo "<td>".$datedfr[$i]."</td>";
    echo "<td><input type='text' name='ptidej".$i."'></td>";
    echo "<td><input type='text' name='midsoir".$i."'></td>";
    echo "<td><input type='text' name='gouter".$i."'></td>";
    echo "<td><input type='text' name='nuitee".$i."'></td>";
    echo "</tr>";
    $i++;
    }

    Ensuite pour recup les données saisie on fait:

    while ($i<$diff){
    $var[0][$i]= $_POST['ptidej'.$i].'<br>';
    $var[1][$i]= $_POST['midsoir'.$i].'<br>';
    $var[2][$i]= $_POST['gouter'.$i].'<br>';
    $var[3][$i]= $_POST['nuitee'.$i].'<br>';
    $i++;
    }

    Par contre j'ai une question, c'est tu s'il est possible d'inserer des données dans ma table Mysql à partir d'un tableau à deux dimension, par exemple
    $req="INSERT INTO $table (champs1) VALUES ($var[0][$i])";

    Moi ca ne marche pas, ya pas grand chose sur le net a propos de ca.
    Merci
    0
  13. Alain_42 Messages postés 5413 Statut Membre 904
     
    $req="INSERT INTO $table (champs1) VALUES ('".$var[0][$i]."')"; 


    ensuite pour un INSERT il me semble qu'il faut préciser tous les champs de ta table et les valeurs a y inserer
    0