Affichage d'1 var sur 1 ligne

Affichage d'1 var sur 1 ligne - PHP - Programmation

Marsh Posté le 20-03-2005 à 16:38:56    

Bonjour à tous!
 
J'ai une variable PHP qui contient plusieur ligne. Quant on affiche cette variable elle ne s'affiche pas sur une seul ligne!
Le problème c'est que j'utilise cette variable dans un script en Javascript et si cette variable n'est pas affichée en une seule ligne mon script ne fonctionne pas!
Comment faire?
 
Merci!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 16:38:56   

Reply

Marsh Posté le 20-03-2005 à 16:50:42    

Il existe pas une fonction qui permet d'afficher une variable sur une ligne? moi j'ai rien trouver et je cherche encore...
parce qu'en fait je sors le texte d'une base de donnée, je la transforme avec n1br2() et ensuite elle est sur plusieurs lignes...


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 17:01:01    

nl2br tu veux dire
cete te sort une chaine sur une seul ligne, sans \n...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-03-2005 à 17:36:31    

Oui je voulais parlé de nl2br... dsl!
 
Ben en fait le texte au départ il est dans une base de donnée... ce texte est entré par un formulaire donc c'est dès le départ qu'il y a plusieurs ligne... c'est pas possible de le "redresser" en une seule ligne?


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 17:37:42    

bha nl2br fait ca :o
regarde la source...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-03-2005 à 17:43:04    

Ben non il fait pas ça...
j'ai une variable $affichage avec le texte qui était dans la base de donnée...
ensuite je fais ceci:
$affichage = nl2br($affichage);
 
et après dans mon script javascript:
var texteCorps = \"$affichage\";
(A noter que tous mon script javascript et dans echo "" )
 
Mais quand j'affiche la source côté client de mon site j'ai ça:
var texteCorps =texte <br />
texte <br />
ect";
et ça fait foiré tout le code parce que ce n'est pas sur une seul ligne... :-(


Message édité par g_bu le 20-03-2005 à 17:43:43

---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 17:44:25    

bin au lieu faire un nl2br  
fait un str_replace("\n","",$affichage);


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-03-2005 à 18:00:30    

ça fonctionne pas...  :sweat:  
 
Je commence depuis le tous départ:
 
J'ai un formulaire avec un champ texterea. Dedans j'écris un texte avec des "à la ligne" un truc du style:
Blablabla
bla
blabla!
 
Ce formulaire ajoute ce texte dans une base de donnée.
Ensuite je récupère ce texte et le met dans une variable $affichage.
j'aimerais que quand j'affiche cette variable il y ait les <br /> à la place des "à la ligne" alors jutilise la fonction nl2br($affichage)
 
maintenant si je fai un simple echo $affichage;
je vois ceci:
Blablabla
bla
blabla!
et dans la source ceci:
Blablabla<br />
bla<br />
blabla!
 
Ensuite je prend cette variable et je la met dans une variable javascript (mon script javascript est dans un echo)
ce qui donne:
echo " debut du script
var texteCorps = \"$affichage\"
fin du script ";
 
maintenant quand je vais voir dans la source côté client:
var texteCorps = "Blablabla<br />
bla<br />
blabla!"
et ça fait foirer tous le script!!!
et ça doit être comme ça pour que ça fonctionne:
var texteCorps = "Blablabla<br />bla<br />blabla!"
 
Voilà mon problème dans les détails! et je sais pas comment faire... :pfff:  
Merci pour tout!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 18:08:14    

Comme dis plus haut :
 
str_replace("\n","<br>",$affichage);

Reply

Marsh Posté le 20-03-2005 à 18:11:17    

ça ne fonctionne pas... dans la source ça me met ça:
vat texteCorps = ""
Bizard...
 
En fait ce qui faut c'est que ça soit dans la source que ça s'affiche sur une seul ligne... pas sur la page! Oh lala... c'est compliqué!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 18:11:17   

Reply

Marsh Posté le 20-03-2005 à 18:15:20    

Cette fonction est à utiliser à la place de nl2br.
Donc plus aucune raison d'avoir des retours chariot dans ton fichier.

Reply

Marsh Posté le 20-03-2005 à 18:46:44    

mais après ça ne sera pas afficher avec des retour à la lignes sur la page html?


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 18:54:48    

Cette fonction remplace ce que tu veux par ce que tu veux.
Avec ce que je t'ai dit, ca remplace le retour chariot du fichier texte en retour chariot html, alors que la fonction nl2br te donne les deux.

Reply

Marsh Posté le 20-03-2005 à 19:00:28    

ben ça marche pas... je sais 'suis chiant mais n'empêche ça marche pas!
Le truc que vous me donné ça marche sur la page html ça m'affiche comme je veux! (si je fais un simple echo)
Mais dans la source ça m'affiche toujours sur plusieur ligne ce qui fait TOUJOURS FOIRER MON SCRIPT... j'en ai marre... :-(
En tous cas merci pour vos aides!!!!!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 19:09:51    

Je vais essayé d'être encore plus concret:
Voilà mon code:

Code :
  1. /*là je récupère mon texte qui se trouve dans ma base de donnée... je la met dans la variable $annonces_txt
  2. Dans cette variable il y a des codes qui corresponde à de la mise en forme du texte... je remplace ces codes par des balises HTML*/
  3. $annonces_txt=str_replace("[gras]","<b>",$annonces_txt); $annonces_txt=str_replace("[stop_gras]","</b>",$annonces_txt); $annonces_txt=str_replace("[centrer]","<center>",$annonces_txt);
  4. $annonces_txt=str_replace("[stop_centrer]","</center>",$annonces_txt);
  5. $annonces_txt=str_replace("[italique]","<em>",$annonces_txt);
  6. $annonces_txt=str_replace("[stop_italique]","</em>",$annonces_txt);
  7. $annonces_txt=str_replace("[souligner]","<u>",$annonces_txt);
  8. $annonces_txt=str_replace("[stop_souligner]","</u>",$annonces_txt);
  9.  
  10. //Ensuite je fais comme on ma dit:  
  11. $affichage = str_replace("\n","<br>",$annonces_txt);
  12. echo "<SCRIPT language=\"JavaScript\">
  13. // je vais pas vous mettre tous le script javascript... si jamais c'est un script pour faire une fausse popup en DHTML
  14. var texteCorps = \"$affichage\" // et ça c'est le texte qui se trouve dans la fausse popup
  15. </SCRIPT>


et maintenant voilà ce qui est dans la source côté client:

Code :
  1. var texteCorps = "<center><b>Immobilier</b>
  2. <br>Texte pour les annonces immobilières
  3. <br>
  4. <br><b>Emplois</b>
  5. <br>Texte pour les offres d'emplois
  6. <br></center>"


et pour que ça marche il faudrait que ça soit sur une seul ligne dans la source!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 19:12:15    

Je suis pas très à l'aise en prog non plus.
Faut peut être réatribuer le résultat à ta variable.
 
$affichage = str_replace("\n","<br>",$affichage);
echo $affichage;
 
Edit : Bon bah t'as tout fait comme il faut, je sais pas, je passe  :D.


Message édité par gihel le 20-03-2005 à 19:14:56
Reply

Marsh Posté le 20-03-2005 à 19:17:27    

on te l'a déjà dit : nl2br
 
mais t'as meme pas de logique dans ton code : tu veux remplacer les retours à la ligne par des <br> AVANT de lancer ton  JS alors qu'il faut faire le remplacement APRES pour conserver $annonces_txt 'en ligne'  
c'est pas difficile !
 
précision : les \n en bdd ne sont pas 'visible' dans ta chaine, alors qu'ils doivent l'etre ds la variable JS pour avoir un retour à la ligne :
avant le JS tu mets  
$tavar = str_replace("\n",'\n',$tavar)
ce qui a pour influence de remplacer un retour à la ligne par les caracteres \ et n
probleme résolu
 

Code :
  1. $affichage = str_replace("\n",'\n',$annonces_txt);
  2.  
  3. echo "<SCRIPT language=\"JavaScript\">
  4. var texteCorps = \"$affichage\"
  5. </SCRIPT>";
  6. $affichage_html = nl2br($annonces_txt);
  7. echo $affichage_html;


Message édité par Profil supprimé le 20-03-2005 à 19:27:44
Reply

Marsh Posté le 20-03-2005 à 19:57:45    

non pas le problème n'est pas résolu...
Déjà avant de faire quoique ce soit sur ma variable et que je l'affiche, dans la source elle est déjà en plusieurs ligne, par contre elle s'affiche sur la page en une ligne...


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 20:08:25    

ce qu'il y a c'est que dès le départ ma variable est en plusieur ligne... dès que je la récupère de la base de données...


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 21:20:54    

j'ai essayé de remplacé juste après le formulaire (avant de mettre dans ma base) le  \n par un autre caractère:
$envoi = str_replace("\n","§",$envoi);
si j'avais ça dans mon champ texte de mon formulaire:
bla bla bla
bla bla
 
ensuite quand j'affiche ma variable dans la source ça me donne ça:
bla bla bla
§bla bla
 
et sur la page internet:
bla bla bla §bla bla
 
Pourquoi il est obligé d'afficher dans la source avec des retour de chariot... c'est vrai!!!! :-(


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 21:20:57    

g_bu a écrit :

ce qu'il y a c'est que dès le départ ma variable est en plusieur ligne... dès que je la récupère de la base de données...


tu portes bien ton pseudo toi  
 
 
ma proposition marche tres bien :
ta source est en plusieurs ligne : ca j'avais bien compris, pas pour rien que j'ai mis  
$affichage = str_replace("\n",'\n',$annonces_txt);
(j'ai cité plus haut ce que ca fait : remplacer les sauts de ligne par les caracteres \n)
si ca passe pas essaye "\r\n"


Message édité par Profil supprimé le 20-03-2005 à 21:22:00
Reply

Marsh Posté le 20-03-2005 à 21:22:43    

ouais d'accord avec toi... le problème mnt quand je fais ça dans le source c'est écrit ça:
 
bla bla bla
\nblab bla
\nbla bla
 
je comprend plus rien... moi aussi i me semblait que ça marchait ta proposition!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 21:23:37    

g_bu a écrit :

ouais d'accord avec toi... le problème mnt quand je fais ça dans le source c'est écrit ça:
 
bla bla bla
\nblab bla
\nbla bla
 
je comprend plus rien... moi aussi i me semblait que ça marchait ta proposition!


dans le script JS ?
t'as essayé  "\r\n" ?(edité plus haut)


Message édité par Profil supprimé le 20-03-2005 à 21:24:13
Reply

Marsh Posté le 20-03-2005 à 21:24:11    

Et ouais... ou si je fais un echo de la variable dans la source ben c'est comme ça!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 20-03-2005 à 21:25:40    

arf ! j'avais pas vu que tu voulais te servir de ta variable pr une popup : le \n doit etre visible ds une chaine si tu t'en sert de boite de dialogue
 
nl2br() donc...
si t'as encore des retours à la ligne apres(qd meme bizarre), tu les vires avec $tavar = str_replace("\n","",$tavar);


Message édité par Profil supprimé le 20-03-2005 à 21:30:38
Reply

Marsh Posté le 20-03-2005 à 21:33:34    

c'est bon... j'ai enfin et pour finir trouver!
j'ai fait ça:
$affichage = str_replace("\r\n","<br />",$annonces_txt);
Merci spike... j'ai pas pensé à \r! (c'est déjà quoi \r précisément?)
 
MERCI A TOUS!


---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)
Reply

Marsh Posté le 22-03-2005 à 17:42:23    

OUF !  :D
\r c'est le retour chariot


Message édité par Profil supprimé le 22-03-2005 à 17:42:54
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed