Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1616 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Affichage d'1 var sur 1 ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affichage d'1 var sur 1 ligne

n°1019050
g_bu
Posté le 20-03-2005 à 16:38:56  profilanswer
 

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)
mood
Publicité
Posté le 20-03-2005 à 16:38:56  profilanswer
 

n°1019059
g_bu
Posté le 20-03-2005 à 16:50:42  profilanswer
 

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)
n°1019067
KangOl
Profil : pointeur
Posté le 20-03-2005 à 17:01:01  profilanswer
 

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


---------------
Nos estans firs di nosse pitite patreye...
n°1019086
g_bu
Posté le 20-03-2005 à 17:36:31  profilanswer
 

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)
n°1019088
KangOl
Profil : pointeur
Posté le 20-03-2005 à 17:37:42  profilanswer
 

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


---------------
Nos estans firs di nosse pitite patreye...
n°1019094
g_bu
Posté le 20-03-2005 à 17:43:04  profilanswer
 

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)
n°1019095
KangOl
Profil : pointeur
Posté le 20-03-2005 à 17:44:25  profilanswer
 

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


---------------
Nos estans firs di nosse pitite patreye...
n°1019122
g_bu
Posté le 20-03-2005 à 18:00:30  profilanswer
 

ç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)
n°1019130
gihel
Posté le 20-03-2005 à 18:08:14  profilanswer
 

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

n°1019132
g_bu
Posté le 20-03-2005 à 18:11:17  profilanswer
 

ç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)
mood
Publicité
Posté le 20-03-2005 à 18:11:17  profilanswer
 

n°1019135
gihel
Posté le 20-03-2005 à 18:15:20  profilanswer
 

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

n°1019165
g_bu
Posté le 20-03-2005 à 18:46:44  profilanswer
 

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)
n°1019175
gihel
Posté le 20-03-2005 à 18:54:48  profilanswer
 

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.

n°1019179
g_bu
Posté le 20-03-2005 à 19:00:28  profilanswer
 

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)
n°1019196
g_bu
Posté le 20-03-2005 à 19:09:51  profilanswer
 

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)
n°1019199
gihel
Posté le 20-03-2005 à 19:12:15  profilanswer
 

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
n°1019202
Profil sup​primé
Posté le 20-03-2005 à 19:17:27  answer
 

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
n°1019258
g_bu
Posté le 20-03-2005 à 19:57:45  profilanswer
 

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)
n°1019273
g_bu
Posté le 20-03-2005 à 20:08:25  profilanswer
 

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)
n°1019361
g_bu
Posté le 20-03-2005 à 21:20:54  profilanswer
 

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)
n°1019362
Profil sup​primé
Posté le 20-03-2005 à 21:20:57  answer
 

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
n°1019364
g_bu
Posté le 20-03-2005 à 21:22:43  profilanswer
 

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)
n°1019365
Profil sup​primé
Posté le 20-03-2005 à 21:23:37  answer
 

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
n°1019366
g_bu
Posté le 20-03-2005 à 21:24:11  profilanswer
 

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)
n°1019367
Profil sup​primé
Posté le 20-03-2005 à 21:25:40  answer
 

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
n°1019372
g_bu
Posté le 20-03-2005 à 21:33:34  profilanswer
 

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)
n°1021311
Profil sup​primé
Posté le 22-03-2005 à 17:42:23  answer
 

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


Message édité par Profil supprimé le 22-03-2005 à 17:42:54
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Affichage d'1 var sur 1 ligne

 

Sujets relatifs
[C#] connaitre le nombre de ligne sans parcourir fichierscript php pour affichage de bande passante
[c#] Problem: affichage d'une progressBar[ADA] Affiner l'affichage dans un Gtk_File_Selection
[Réglé] Espacement, saut de ligne>>MySQL>>Affichage[résolu]"Focus" sur une ligne à l'affichage d'un menu déroulant
Ne pas sauter une ligne avant l'affichage d'une liste HTML[PHP&SQL] AFFICHAGE 4 entré sur une même ligne lors d'une saisie
[ASP] affichage de certaine ligne d un fichier XLS[webmastering] affichage different en ligne et en local avec MEME CODE
Plus de sujets relatifs à : Affichage d'1 var sur 1 ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR