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 :

alimenter le textarea d'un formulaire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut alimenter le textarea d'un formulaire
    Bonjour à tous !

    Ce qui se conçoit bien s'énonce clairement ... je vais essayer d'exposer mon problème simplement

    En cliquant sur ce lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='adresse.php?m=".$valeur[1]."'>lien</a>
    où $m = $valeur[1], je souhaiterais "alimenter" le textarea d'un formulaire sans le soumettre, c'est à dire au reload de la page avec $m = $valeur[1] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form action="adresse.php#cible" method="post" enctype="multipart/form-data">
     
    <textarea name="spec" id="formulaire" cols=50 rows=5><? echo"".$m.""; ?></textarea>
     
    <div align='right'><input type="submit" value="ENVOYER!" /></div>
     
    </form>
    De telle sorte qu'à chaque nouvelle valeur de $m, celle-ci s'ajoute à la précédente ... vous voyez ?

    Admettons, j'ai les liens suivants :

    <a href='adresse.php?m=riri'>riri</a>
    <a href='adresse.php?m=fifi'>fifi</a>
    <a href='adresse.php?m=loulou'>loulou</a>
    <a href='adresse.php?m=picsou'>picsou</a>

    Ainsi, si je clique sur riri j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="spec" id="formulaire" cols=50 rows=5>riri</textarea>
    Mais si après, je clique sur fifi, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="spec" id="formulaire" cols=50 rows=5>fifi</textarea>
    au lieu d'avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="spec" id="formulaire" cols=50 rows=5>rirififi</textarea>
    et ainsi de suite ...

    Alors j'ai pensé passer par un tableau du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $prenom = array('".$m."'); 
     
    echo $prenom[0].' - '.$prenom[1].' - '.$prenom[2].' - '.$prenom[3].'';
    Mais même problème...comment l'alimenter ! je tourne en rond ...

    Question subsidiaire à 1€ : savez-vous par hasard comment conserver la saisie d'un textarea d'une page à l'autre sans soumettre le formulaire ?

    >> Je remplis mon textarea sans le soumettre, je navigue sur les pages d'un site et de retour au formulaire, j'ai de nouveau ma saisie...

    Javascript, ajax, php (sessions? cookies?) ?

    Merki les devellopeux

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Pour la première question, tu utilises une variable $_SESSION ça me parait le mieux.

    Pour la deuxième, une fonction JS bien placée: cela dépend de ta page html en cours et de ces controles (vu comme cela je peux pas te répondre mais ça sera sur les événements de la page). Sinon, une js sur avant de quitter la page (je regarde et je te donne l'event).

    EDIT: Regardes à onLoad et onUnLoad pour gérer à chaque fois le textarea

  3. #3
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Bonjour,

    A priori,
    tant que le formulaire n'est pas soumis,
    le contenu du textarea ne sera pas récupéré par le serveur
    et ne pourra donc être utilisé par PHP.

    Perso,
    je tenterais le coup avec javascript :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function monHREF(el)
    {
      var monLien=document.getElementById('monTextarea').value;
      el.href='?m='+monLien+el.innerHTML;
      return true;
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <p><a href="" onclick="monHREF(this);">riri</a></p>
    <p><a href="" onclick="monHREF(this);">fifi</a></p>
    <p><a href="" onclick="monHREF(this);">loulou</a></p>
    <p>
    <form action="adresse.php#cible" method="post" enctype="multipart/form-data">
     
    <textarea id="monTextarea" name="spec" id="formulaire" cols=50 rows=5><?php if (isset($_GET['m'])) echo $_GET['m']; ?></textarea>
     
    <div align='right'><input type="submit" value="ENVOYER!" /></div>
     
    </form>
    </p>
    Fred

  4. #4
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    merci pour vos réponses rapides

    Je viens de tester ta méthode micetf avec le lien suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='index.php?page=adresse&m=".$row[1]."' onclick='monHREF(this);'>lien</a>
    Une fois cliqué, celui-ci me renvoie à cette adresse : http://monsite.com/index.php?m=

    et aucune valeur n'est attribuée à $m

    au lieu de http://monsite.com/index.php?page=adresse&m=fifi (fifi ou autres valeurs correspondant à ma boucle)

    Concernant ma deuxième question à savoir : comment conserver la saisie d'un textarea d'une page à l'autre sans soumettre le formulaire, as-tu un exemple JS Fench ? le javascript et moi ça fait deux

  5. #5
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Ceci fonctionne, si le script s'appelle index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <script type="text/javascript">
    function monHREF(el)
    {
      var monLien=document.getElementById('monTextarea').value;
      el.href+='&m='+monLien+el.innerHTML;
      return true;
    }
    </script>
    <p><a href="index.php?page=adresse" onclick="monHREF(this);">riri</a></p>
    <p><a href="index.php?page=adresse" onclick="monHREF(this);">fifi</a></p>
    <p><a href="index.php?page=adresse" onclick="monHREF(this);">loulou</a></p>
    <p>
    <form action="adresse.php#cible" method="post" enctype="multipart/form-data">
     
    <textarea id="monTextarea" name="spec" id="formulaire" cols=50 rows=5><?php if (isset($_GET['m'])) echo $_GET['m']; ?></textarea>
     
    <div align='right'><input type="submit" value="ENVOYER!" /></div>
     
    </form>
    </p>
    comment conserver la saisie d'un textarea d'une page à l'autre sans soumettre le formulaire
    Si tu ne soumets pas le formulaire, c'est impossible.
    Mais il est vrai qu'en utilisant le code ci-dessus, le contenu du textarea est contenu dans la query string ($_GET['m']) et on peut le récupérer ainsi.

    Fred

  6. #6
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Merci micetf

    Suite à ton post, j'ai simplement modif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    el.href='?page=adresse&m='+monLien+el.innerHTML;
    pour être redirigé au bon endroit et non plus à index.php?m=

    ...enfin je me comprends comme dirait l'autre

    Sinon ça me tracasse cette histoire de textarea qu'on ne peut pas conserver d'une page à l'autre ... j'écume tous les sites et abuse des mots clés les plus variés mais rien n'y fait ...

    Si vous avez une astuce ou piste, je prends !

  7. #7
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Rapidement :
    En utilisant les cookies avec JS (http://javascript.developpez.com/faq...=navig#cookies), tu devrais arriver à tes fins.
    Dans la fonction monHREF, ou lorsque tu saisis directement dans le textarea (fonction changeTextarea() appelée sur l'évènement onkeyup), tu crées un cookie
    et, à la création de la page, tu lis ce cookie ($_COOKIE['textarea']).
    Fred

    Proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <script type="text/javascript">
    function SetCookie(name, value, days) {
         var expire = new Date ();
         expire.setTime (expire.getTime() + (24 * 60 * 60 * 1000) * days);
         document.cookie = name + "=" + escape(value) + "; expires=" +expire.toGMTString();
    }
    function GetCookie(name) {
         var startIndex = document.cookie.indexOf(name);
         if (startIndex != -1) {
              var endIndex = document.cookie.indexOf(";", startIndex);
              if (endIndex == -1) endIndex = document.cookie.length;
              return unescape(document.cookie.substring(startIndex+name.length+1, endIndex));
         }
         else {
              return null;
         }
    }
    function monHREF(el)
    {
      var monLien=document.getElementById('monTextarea').value;
      el.href+='&m='+monLien+el.innerHTML;
      SetCookie('textarea',monLien+el.innerHTML,1);
      return true;
    }
    function changeTextarea(el)
    {
      SetCookie('textarea',el.value,1);
    }
    </script>
    <p><a href="index.php?page=adresse" onclick="monHREF(this);">riri</a></p>
    <p><a href="index.php?page=adresse" onclick="monHREF(this);">fifi</a></p>
    <p><a href="index.php?page=adresse" onclick="monHREF(this);">loulou</a></p>
    <p>
    <form action="adresse.php#cible" method="post" enctype="multipart/form-data">
     
    <textarea id="monTextarea" name="spec" id="formulaire" cols=50 rows=5 onkeyup="changeTextarea(this);"><?php if (isset($_COOKIE['textarea'])) echo $_COOKIE['textarea']; ?></textarea>
     
    <div align='right'><input type="submit" value="ENVOYER!" /></div>
     
    </form>
    </p>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [propel]Compter TextArea d'un formulaire
    Par Djillian dans le forum ORM
    Réponses: 4
    Dernier message: 03/03/2011, 17h09
  2. [MySQL] Alimenter une table par plusieurs formulaires et remplacer les valeurs existantes
    Par deshogues dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/03/2009, 17h49
  3. Réponses: 5
    Dernier message: 04/10/2008, 17h15
  4. Réponses: 1
    Dernier message: 19/09/2008, 09h56
  5. alimenter une tables avec plusieurs formulaires
    Par vibalistic dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/12/2007, 10h20

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