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

Langage PHP Discussion :

Update d'un textarea change l'affichage


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut Update d'un textarea change l'affichage
    Bonjour, j'ai eu un peu de difficulté à trouver un titre significatif

    Voilà ma situation:

    J'ai un formulaire de feuille de travail
    je peux ou non ajouter des commentaire, si je décide d'en ajouter je fais apparaitre un textArea

    Si l'usager entre un commentaire pour sa feuille de travail, je l'insert dans une table séparer gardant l'id de la feuille de travail et un champs commentaire de type text

    L'insert se fait bien, pas de soucis
    ....

    J'offre par la suite la possibilité de modifier une entré dans la feuille de travail et par le fait meme le commentaire que je réaffiche dans le textarea, s'il y en a eu un d'inscrit. Il a la meme forme que celle que j'ai inscrit originalement(1)

    Je fais ensuite une requete d'update sur tout les champs afin d'éviter de valider lequel a été modifier
    Le probleme est lorsque j'update le chmaps commentaire de type text, il bousille alors mon affichage originale(1) dans mon textarea

    Ex:
    j'ai une phrase d'écrit
    et une deuxieme ligne.

    Je saute une ligne et termine.
    Après update si je raffiche ca me fait ca
    j'ai une phrase d'écrit et une deuxieme ligne. Je saute une ligne et termine.

    vous savez pourquoi???

    merci de votre aide

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Salut,

    regarde cette fonction, elle te sera utile je pense pour la manipulation des données d'une textarea :

    function.nl2br

    Cordialement.

  3. #3
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    oui, j'y avait jeté un coup d'oeil
    mais est ce que je passe cette fonction avant de faire l'insert dans la bdd?

    Deplus si ca change les \n en <br /> ben c'est bon pour l'affichage dans un echo, mais si je fais afficher le tout dans mon textarea, est ce que ca va agir de la meme manière?

  4. #4
    Fabouney
    Invité(e)
    Par défaut
    bah de totue manière tu n'as pas 30 000 facons de conserver ces retour chariots, car lors de l'insert il sont supprimés, alors nl2br est, je pense, bien dans ton cas, et pour réafficher le text dans ta textarea est bien un bon petit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("<br />", "\n", $text);
    fera l'affaire non ?

    P.S : sinon moi j'utilise Tinymce pour l'édition de textarea, super simple.

    Cordialement.

  5. #5
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    oki ben je vais me pencher sur l'utilisation des nl2br et le str_remplace
    je te reviens ladessus

    merci beaucoup

  6. #6
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    salut
    bon je viens de tester le tout
    et ca marche pratiquement
    je te donne mon code tu me dit s'il y quelque chose qui cloche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //La transformation du textarea (txtComments) posté
    if(isset($_POST['txtComments'])){
    	$commentaires = nl2br($_POST['txtComments']);
    	$strScriptComments = "INSERT INTO `tblcommentsfeuilletravail` ( `commentsFeuilleTravailID` , `feuilleTravailID` , `commentaire` ) ";
    	$strScriptComments .= "VALUES ('', '".$insertedID."', '".$commentaires."')";
     
    	//echo $strScriptComments.'<br>';
    	$objCon->dbQuery($strScriptComments);
    }
    Ceci est ce qu'il y a eu d'inseré en bdd
    Dan à reçu cinq moules drette su'a tête<br />
    <br />
    Il a alors mangé une tourterelle farcie à l'ours des neiges du nord de la sybérie.<br />
    Peut-être encore une fois l'avion s'écrasera dans le groënland
    Voici ma requete pour récupérer le tout
    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
     
    $strScript = "SELECT commentaire ";
    $strScript .= "FROM tblcommentsFeuilleTravail ";
    $strScript .= "WHERE feuilleTravailID = '".$_POST['mod'.$_GET['modifie']]."'";
     
    $req = $objCon->dbQuery($strScript);
    if(mysql_num_rows($req) > 0){
    	$flagComments = 1;
    	$resModif = mysql_fetch_assoc($req);
     
    	$_POST['txtComments'] = str_replace("<br />","\n",$resModif['commentaire']);
    	//$_POST['txtComments'] = $resModif['commentaire'];
    }
     
    ....
    //Comment je l'affiche dans le textarea
    echo(isset($flagComments) && $flagComments == 1)?'<textarea name="txtComments" cols="50" rows="10">'.$_POST['txtComments'].'</textarea>' : '<textarea name="txtComments" cols="50" rows="10"></textarea>';
    Ce que ca m'affiche ensuite:
    Dan à reçu cinq moules drette su'a tête



    Il a alors mangé une tourterelle farcie à l'ours des neiges du nord de la sybérie.

    Peut-être encore une fois l'avion s'écrasera dans le groënland
    Observation: on dirait qu'il double les retour à la ligne
    Tu sais pourquoi?

  7. #7
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Je ne comprends pas trop a vrai dire...on dirait que les \n restent là, c'est donc pour cela qu'ils les doublent

    J'ai modifier le str_replace de cette facon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_POST['txtComments'] = str_replace("<br />"," ",$resModif['commentaire']);
    et ca m'affiche le tout comme ceci
    Dan à reçu cinq moules drette su'a tête

    Il a alors mangé une tourterelle farcie à l'ours des neiges du nord de la sybérie.
    Peut-être encore une fois l'avion s'écrasera dans le groënland
    ce qui est correct...
    enfin je ne comprends pas trop pourquoi
    Donc probleme réglé pour l'insert
    je vais voir pour l'update maintenant

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par ozzmax
    est ce que je passe cette fonction avant de faire l'insert dans la bdd?
    Personnellement je dirais que c'est une erreur : la présence de balises HTML dans vos données limitent leur réutilisation. Imaginez que demain vous vouliez générer des PDF avec ces mêmes données par exemple.

    Citation Envoyé par ozzmax
    Deplus si ca change les \n en <br /> ben c'est bon pour l'affichage dans un echo, mais si je fais afficher le tout dans mon textarea, est ce que ca va agir de la meme manière?
    De ce que j'ai vu PHP ajoute la balise <br/> en plus du saut à la ligne (il le laisse = ne le remplace pas) donc on peut supposer que la suite est normale ...

  9. #9
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    oki donc je ne devrais pas utiliser le nl2br dans ce cas
    car oui j'ai un pdf a généré par la suite et sa m'ennuierait de toujours avoir à modifier la string retourné

    J'ai p-e mal vu la je vais ressayé et vous en donnez des nouvelles

  10. #10
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Bon il semble que ce soit dans ma tête que ca fonctionne pas correct
    Pourtant j'ai testé hier avec un update
    c'est p-e car il était minuit...

    Enfin, ca fonctionne correctement sans appliqué de str_replace ou nl2br
    ca fait mes update et l'affichage est correct aussi

    Dernière question, est ce que c'est le champs de type texte en bdd qui permet le tout? Car je n'avais jamais utiliser ce type là avant

  11. #11
    Fabouney
    Invité(e)
    Par défaut
    oui tout à fait le type "text" est très bien pour stocker des données issues d'une textarea

  12. #12
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Merci pour votre patience
    bonne fin de journée

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

Discussions similaires

  1. Le PHPSESSID change à chaque affichage
    Par meuns26 dans le forum Langage
    Réponses: 7
    Dernier message: 18/10/2009, 18h17
  2. <select> <option> et affichage dans un textarea
    Par gazelle dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 05/06/2006, 13h23
  3. Value d'un textarea qui change
    Par Jarodd dans le forum Langage
    Réponses: 3
    Dernier message: 10/03/2006, 10h50
  4. Réponses: 2
    Dernier message: 02/02/2006, 22h38
  5. Update affichage dbgrid
    Par maw dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/10/2005, 19h26

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