Pré-remplir des champs form

Résolu
txiki Messages postés 6514 Date d'inscription   Statut Contributeur Dernière intervention   -  
 Uzi -
Bonsoir a tous,
J'ai fait un formulaire pour ajouter une fiche dans une table. Jusque là OK !
Maintenant, je voudrais donner la possibilité (à ceux qui auront le droit de modifier une fiche existante) d'avoir les données des champs renseignés dans la table sur le formulaire de modification.
J'ai essayé plusieurs scripts en php mais aucun n'est réaliste. Dans l'un d'eux, c'est le php qui génére le formulaire avec les datas à l'intérieur mais ce n'est pas la bonne fiche (à priori c'est toujours la derniere (dernier id).
De plus, il m'est impossible d'avoir un formulaire avec des listes déroulantes ce qui permettrait d'avoir toujours la même orthographe pour une catégorie donnée par exemple (et pas un coup, une écriture, un autre une autre écriture etc...; bref que ce soit homogène).
L'exemple est ici: http://txiki.free.fr/fiche-ajout.gif
Celui-la est OK.
Tout part d'ici en fait: http://txiki.free.fr/liste.php
Ajouter fiche: login= tintin, pass=tinotibet. (original non ?

merci pour vos réponses.

--
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Configuration: Windows XP
Firefox 1.5.0.10

17 réponses

  1. thomas_- Messages postés 97 Statut Membre 44
     
    Bonjour,

    quand la personne clique sur la fiche on va dire que ce sera par l'id, exemple : fiche_modifs.php?id=256

    Ici dans ton "fiche_modif.php", tu vérifies tout d'abord que l'id soit renseignée :

    <?php
    if(isset($_GET["id"]))
    {
    $id = $_GET["id"];
    // on se connecte à la bdd pour récupérer les informations de la fiche
    $res = mysql_query(" SELECT * FROM `t_fiches` WHERE fiche_id = '".$id."' ");
    // si un enregistrement correspond
    if(@mysql_num_rows($res) > 0)
    {
    // c'est ok alors on récupère les infos
    $titre = stripslashes($row["fiche_titre"]);
    $contenu = stripslashes($row["fiche_contenu"]);
    // .....
    ?>
    <form name="blabla" action="fiche_modif.php" method="post">
    <input type="hidden" name="fiche_id" value="<?=$id;?>" />
    <input type="text" name="fiche_titre" value="<?=$titre;?>" />
    <textarea name="fiche_contenu"><?=$contenu;?></textarea>
    <!-- ........ -->
    <input type="submit" value="Valider la modification" />
    </form>
    <?php
    }
    // si l'id n'est pas correcte on affiche une erreur
    else echo "Désolé mais aucun enregistrement ne correspond
    }
    // si l'id n'est pas renseignée on affiche une erreur
    else echo "Erreur, l'id n'a pas été renseignée
    ?>

    J'espère que ça t'aidera,

    Thomas
    9
  2. thomas_- Messages postés 97 Statut Membre 44
     
    Bonjour,

    pour tes champs de type déroulant c'est pareil, regarde :

    <?php
    $menuderoulant = $row["menuderoulant"];
    // on se connecte à la base pour récupérer les tables qui contiennent les valeurs du menu déroulant et pour les comparer a la valeur actuelle
    $res2 = mysql_query(" SELECT * FROM `t_tatable` WHERE chepakoa = 'chepakoua' ");
    // si des enregistremente existent bien
    if(@mysql_num_rows($res2) > 0)
    {
    echo '<select name="tonmenuderoulant" id="tonmenuderoulant">';
    while($row2 = mysql_fetch_array($res2))
    {
    $valeur = $row2["valeur"];
    ?>
    <option value="<?=$valeur;?>"<?php if($valeur == $menuderoulant") echo 'selected="selected"';?>><?=$valeur;?></option>
    <?php
    }
    echo '</select>';
    // sinon on affiche un message d'erreur

    }
    else echo "Désolé mais aucun enregistrement ne correspond, y'a u bleme !";
    ?>

    Voilà, je sais pas si ça t'aidera :)

    Thomas
    6
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. txiki Messages postés 6514 Date d'inscription   Statut Contributeur Dernière intervention   609
     
    Salut thomas et merci pour ta réponse,
    Excuse moi pour ce retard mais je suis sur un autre Pb (nouvelle version de l'intranet)....
    Ton idée de partir d'une fiche n'est pas bête du tout !
    Si j'ai bien compris, j'affiche une fiche détaillée (laquelle contiendra un bouton "Modifier" et qui pointera vers le formulaire de modification (pré-rempli).
    La question que je me pose est:
    Comment conserver les champs de type "liste déroulante" ?
    Mais je teste et te tiens au courant.
    A + et merci pour l'idée.
    1
  5. txiki Messages postés 6514 Date d'inscription   Statut Contributeur Dernière intervention   609
     
    Oulààààààààààààà !
    j'en ai un paquet de champs liste....
    ça me complique la tâche.
    Puis-je utiliser les names desliste déroulantes en guise de variables ?
    Merci encore !
    1
  6. slashy
     
    Grand merci thomas!!
    même prèsque un an après ça sert bien ;o)
    1
  7. sergio
     
    Bonsoir
    j'ai un 1er formulaire qui comporte entre autre une zone de texte (textarea), après soumission de ce 1er formulaire, un 2ème formulaire réaffiche les éléments du 1er et vérifie si des informations obligatoires du 1er n'ont pas été omises.
    Je voudrais réafficher le texte contenu dans la zone de texte du 1er formulaire.
    Merci de votre aide
    0
    1. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
       
      salut,

      mets la valeur entre la balise d'ouverture et la balise de fermeture.
      <textarea>blablabla</textarea>
      0
  8. Wam
     
    Bonjour, quelques mois après cette fois-ci.

    Je suis d'accord avec ça : <textarea>blablabla</textarea>
    Mais si dans blablabla il y a des sauts de ligne <br/> ou \r\n, comment les transformer en réels sauts de ligne dans la textarea ????

    Merci pour l'aide.
    A+++
    0
    1. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
       
      Adobe Igs graffeursalut,

      si tu utilises PHP tu peux utiliser "\n" entre guillemets ça devrait sortir correctement.
      0
  9. Wam
     
    si tu utilises PHP tu peux utiliser "\n" entre guillemets ça devrait sortir correctement.

    Bonjour,
    En fait j'ai le choix entre utiliser blablablabla contenant des <br/> ou blablablabla contenant des \n\r.
    Mon problème est que si j'utilise l'un ou l'autre je me retrouve avec des <br/> ou des \n\r dans ma textearea.
    Je voudrais de vrais sauts de ligne (visibles).

    Merci de votre aide.
    0
  10. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    salut,

    montre-nous le bout de code, stp.
    0
  11. Wam
     
    Salut,

    en fait c'est pour ajouter/modifier des news sur un site.
    j'ai ma textarea :
    <textarea>blablabla</textarea>

    Soit j'utilise $nouvelle à la place de blablabla. $nouvelle est du type .............<br/>............<br/>....................
    Soit j'utilise $donnees['nouvelle'] à la place de blablabla. $donnees['nouvelle'] est de type .........\n\r............\n\r.......

    Moi ce que j'aimerai dans ma textearea c'est :
    ............
    .............
    ...........

    Voilà. J'éspère que c'est compréhensible.
    Merci
    0
  12. Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
     
    essaie avec :
    $donnees['nouvelle'] = "\r\nblablabla\r\n";
    0
  13. Wam
     
    Salut Dalida, merci pour ton aide !!!

    Mais je sais pas si tu as bien compris mon problème.
    Je cherche à pré-remplir une zone de texte (textarea) mais je ne sais pas comment faire passer à la ligne.
    Surtout j'utilise une variable pour pré-remplir cet zone de texte, alors par quoi je dois remplacer <br/> ou \n\r pour que ça me fasse les sauts de lignes.

    A ce que j'ai pu comprendre, <textarea>blablabla</textarea> : le blablabla n'est pas du html (parce que quand je met des balises je les retrouve en toute lettre) ni du php.
    J'ai vu aussi que quand je tape à la main le blablabla, si je vais à la ligne (dans le code) ça passe bien.

    Dois-je découper ma variable qui contient blablabla et faire les sauts de ligne dans le code (trop lourd) ??
    0
    1. Teedee
       
      Salut,

      moi j'ai bien compris ton problème, et je rencontre le même aujourd'hui, as tu trouvé une solution ?

      En gros, on veut pré remplir un input texterea avec dedans :
      "coucou première ligne
      deuxlième ligne"


      si on met :
      $textAreaValue = "coucou première ligne<br />deuxlième ligne"
      ou
      $textAreaValue = "coucou première ligne\ndeuxlième ligne"

      Ca s'affiche : "coucou première ligne<br />deuxlième ligne" dans la page html, au lieu de
      "coucou première ligne
      deuxlième ligne"
      attendu
      0
  14. Wam
     
    Salut Teedee.

    Oui j'ai résolu mon problème il y a un bout de temps.

    Ma solution : passer à la ligne dans le code :
    <textarea name="bla">coucou première ligne
    deuxlième ligne</textarea>

    J'éspère avoir été clair.

    a+++
    0
    1. Teedee
       
      Bah moi pour l'instant je triche car ma donnée provient d'un xml, et j'ai fait comme toi, j'ai mis le saut à la ligne en dur :

      <value><![CDATA[123 bis rue Dujardin
      75001 PARIS]]></value>

      En lui passant ça, le textarea remet tout seul un saut de ligne, mais le problème se posera quand je devrais mettre à jour le value par javascript ou php...
      Mais donc ta solution ne me convient pas :)
      merci de ta réactivité cependant
      0
  15. Wam
     
    Re.

    Ouai j'utilise cette solution mais moi aussi je pense que c'est du "bricolage".
    Si tu trouve une soluce mieux, poste la !!

    a+++
    0
  16. Wam
     
    Ca marche impec !!!

    Ca fait plaisir de voir un vieux sujet revenir à la surface ! Et avec succès !!!

    Merci à tous ! Fini le bricolage !

    a+++
    0