IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Création dynamique de formulaires


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut Création dynamique de formulaires
    Salut,

    Je planche actuellement sur une interface administrateur en PHP, en relation avec une base MySQL. Mon interface se compose d'un bon lot de formulaires crées dynamiquement en fonction du nombre de champs dans une table de la base de données. Pour couronner le tout, j'utilise des templates afin de bien séparer mon design de mon code.

    Bref, tout va bien jusque là. Seul problème, étant donné qu'une seule ligne de code suffit pour créer une dizaine de checkbox par exemple (ou des radios), comment les différencier ?

    Mon fichier .php qui crée le bloc pour les checkbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($antecedent = mysql_fetch_assoc($result))
    {
    $template->assign_block_vars('antecedent',array(
    'LIBELLE_ANTECEDENT'=> $antecedent['LIBELLE_ANTECEDENT'],
    ));
    Mon fichier .tpl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!-- BEGIN antecedent -->
     
    {antecedent.LIBELLE_ANTECEDENT} <input type="checkbox" name="antecedent" value="{antecedent.LIBELLE_ANTECEDENT}">
     
    <!-- END antecedent -->
    En fait, lorsque je veux récupérer la valeur d'une checkbox (si elle est cochée), tout va bien, mais lorsque il y a plusieurs checkbox cochées, c'est la dernière qui est prise en compte. Donc en fait, serait t-il possible de différencier chaque checkbox d'une autre afin de récupérer toutes les valeurs voulues ? Genre par une boucle qui assigne une valeur supplémentaire, un tableau ou une concaténation quelconque ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    en name met "antecedent[]" et tu recuperera le resultat en faisant $_POST["antecedent"][0],$_POST["antecedent"][1] etc ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Bah apparemment l'information n'est pas récupérée. :/ Rien ne s'affiche.

    Parce qu'en fait, je voudrais obtenir les valeurs des checkbox qui sont cochées. Dans la plupart des cas, l'utilisateur cochera plusieurs cases, donc comment faire pour enregistrer toutes les valeurs ? Faire une boucle qui enregistrera les valeurs des checkbox dans une variable ? Je signale au passage que ces données seront ensuite insérées dans une base de données. ^^

  4. #4
    Invité
    Invité(e)
    Par défaut
    a tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    for($i = 0;$i<$_POST["antecedent"];$i++){
    echo $_POST["antecedent"][$i]
    }?>
    ??

    sinon affiche moi le resultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <pre><?
    printr($_POST);
    ?></pre>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Alors pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <pre><?
    printr($_POST);
    ?></pre>
    Le serveur me renvoie une Fatal Error, la fonction Printr n'étant pas définie. (faut toucher le php.ini pour activer une fonctionnalité ?).

    Et pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    for($i = 0;$i<$_POST["antecedent"];$i++){
    echo $_POST["antecedent"][$i]
    }?>
    Les valeurs cochées sont bien affichées ouai, mais l'éxecution est super longue, j'ai même une Fatal Error qui apparaît :

    Maximum Execution timùe of 30 seconds excedeed.

    La boucle semble donc être une solution, mais faut la retoucher pour que ce soit plus rapide je pense, mais je vois pas pourquoi c'est si long ? Est-ce parqu'elle vérifie tous les $_POST envisageables ? Et vu que j'ai une trentaine de checkbox sur la page, ça prendrait donc autant de temps ? Avec un Isset qui vérifie si des $_POST ont été envoyés, puis la boucle qui vient ensuite, ça serait mieux ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    desolé j'avai oublié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <?
    for($i = 0;$i<sizeof($_POST["antecedent"]);$i++){
    echo $_POST["antecedent"][$i]
    }?>
    ça ne t'affiche que ceux qui sont cochés.

    EDIT : pour afficher un array c'est plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <pre><?
    print_r($_POST);
    ?></pre>
    encore désolé pour les faute d'orthographe

Discussions similaires

  1. [JSP] Création dynamique de n lignes de formulaire
    Par edralzar dans le forum Struts 1
    Réponses: 6
    Dernier message: 25/09/2014, 15h52
  2. [JavaScript] Création dynamique de formulaires avec jQuery
    Par rberthou dans le forum Contribuez
    Réponses: 2
    Dernier message: 21/09/2009, 10h40
  3. Création dynamique de formulaire
    Par rberthou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/09/2009, 18h19
  4. Création dynamique de formulaires
    Par del-dongo dans le forum ASP.NET
    Réponses: 3
    Dernier message: 24/04/2008, 14h24
  5. Réponses: 8
    Dernier message: 06/07/2006, 08h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo