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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP/JS] Grande chaine de car dans une fonction js.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP/JS] Grande chaine de car dans une fonction js.

n°372460
Scoubidoo
In reblochon we trust
Posté le 26-04-2003 à 01:38:41  profilanswer
 

Salut!
 
J'ai un petit problème avec PHP et JS. Je m'explique :
J'ai une chaine issue de Mysql, retraitée par PHP pour le \n et je souhaite mettre cette grande chaine en tant que variable d'un fonction js.
ex :  

Code :
  1. affichage('<?php echo nl2br($text); ?>');


 
Le problème, c'est en cas de chaine trop longue et contenant plein de \n, je me retrouve avec une fonction js étalé sur plusieurs ligne
ex :  

Code :
  1. affichage('fdazdadzadzadzazdazd
  2. <br /> zefzfezfezefzef
  3. <br /> zefzfezfezefzef
  4. <br /> zefzfezfezefzef');


Du coup, la fonction ne marche plus et j'ai une erreur du style "unterminated string literal".
 
Comment faire pour que la chaine ne soit pas étalé sur plusieurs lignes et pour que la fonction soit reconnue?
 
Merci de votre aide.


Message édité par Scoubidoo le 26-04-2003 à 01:39:11
mood
Publicité
Posté le 26-04-2003 à 01:38:41  profilanswer
 

n°372566
Scoubidoo
In reblochon we trust
Posté le 26-04-2003 à 14:16:44  profilanswer
 

up

n°372572
omega2
Posté le 26-04-2003 à 14:37:20  profilanswer
 

Code :
  1. <br />


Et avec un truc pareil dans le code de ta focntion javascript, tu t'étones encore que la fonction décone?
Il ne faut pas mettre de balise html dans du code javascript. (du moins pas en dehors des chaines de caractères)
Vire donc ton nl2br et ca ira mieux.


Message édité par omega2 le 26-04-2003 à 14:37:39
n°372676
omicron
Pas de bras, pas de caméra !
Posté le 26-04-2003 à 18:11:23  profilanswer
 

non, là n'est pas le problème (du moins pour l'erreur retournée),
en fait js supporte assez mal les retours à la ligne ds une string.
L'erreur se produit ici (*) :

Code :
  1. affichage('fdazdadzadzadzazdazd (*)
  2. <br /> zefzfezfezefzef
  3. <br /> zefzfezfezefzef
  4. <br /> zefzfezfezefzef');


 
Pour supprimer cette erreur tu dois produire ceci :

Code :
  1. affichage('fdazdadzadzadzazdazd<br/>zefzfezfezefzef<br/>zefzfezfezefzef<br/>zefzfezfezefzef');


 
Après faut voir pour <br\> : <br> devrait suffire, si je ne me trompe pas.
 
Quant à ne pas inclure de code html ds du javascript : c'est un peu limiter le javascript (enfin plus qu'il ne l'est)...
a+


Message édité par omicron le 26-04-2003 à 18:14:48
n°372679
simogeo
j'ai jamais tué de chats, ...
Posté le 26-04-2003 à 18:15:30  profilanswer
 

omicron a écrit :


 
Après faut voir pour <br\> : <br> devrait suffire, si je ne me trompe pas.
 
Quant à ne pas inclure de code html ds du javascript : c'est un peu limiter le javascript (enfin plus qu'il ne l'est)...
a+


 
standard XHTML le <br> devient <br />, on ferme les balises c'est une bonne habitude a prendre  ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°372687
omicron
Pas de bras, pas de caméra !
Posté le 26-04-2003 à 18:29:19  profilanswer
 

ah, si ce standard s'imposant le dit ;)

n°372746
Scoubidoo
In reblochon we trust
Posté le 26-04-2003 à 20:16:34  profilanswer
 

omicron a écrit :


 
Pour supprimer cette erreur tu dois produire ceci :

Code :
  1. affichage('fdazdadzadzadzazdazd<br/>zefzfezfezefzef<br/>zefzfezfezefzef<br/>zefzfezfezefzef');


 
Après faut voir pour <br\> : <br> devrait suffire, si je ne me trompe pas.
 


 
Merci pour vos aides.
 
J'avais bien compris que js avait du mal avec les retours à la ligne . si seulement, je pouvais tout mettre tout sur un ligne .... le problème c'est que je ne peux pas car le contenu mis dans la fonction affichae est issu d'un variable php.
 

Code :
  1. affichage('<?php echo $mon_texte_avec_des_br; ?>');


 
lors de l'interpret par php, le contenu de $mon_texte_avec_des_br est étalé par php sur plusieurs lignes...
et ca je ne comprends pas du tout pkoi.
 
Si quelqu'un peut m'éclairer, svp.
 
 
 

n°372754
Scoubidoo
In reblochon we trust
Posté le 26-04-2003 à 20:21:20  profilanswer
 

omega2 a écrit :

Code :
  1. <br />


Et avec un truc pareil dans le code de ta focntion javascript, tu t'étones encore que la fonction décone?
Il ne faut pas mettre de balise html dans du code javascript. (du moins pas en dehors des chaines de caractères)
Vire donc ton nl2br et ca ira mieux.


 
Bah écoute pour le moment, j'ai vu des fonctions js avec tout plein de code HTML dedans tourné sans prob sur différents navigateurs , meme Netscape 4.5....

n°372870
Scoubidoo
In reblochon we trust
Posté le 26-04-2003 à 22:52:38  profilanswer
 

up

n°372914
omicron
Pas de bras, pas de caméra !
Posté le 26-04-2003 à 23:47:45  profilanswer
 

Scoubidoo a écrit :


 
lors de l'interpret par php, le contenu de $mon_texte_avec_des_br est étalé par php sur plusieurs lignes...
et ca je ne comprends pas du tout pkoi.
 
Si quelqu'un peut m'éclairer, svp.


 
essaie de voir si tu peux filtrer les retours à la ligne  
- soit par une fonction toute faite
- soit, si l'interpréteur php l'accepte, de virer ttes les occurences du caractère 'retour à la ligne' (le 13 je crois) de ta chaîne.
 
a+


Message édité par omicron le 26-04-2003 à 23:49:06
mood
Publicité
Posté le 26-04-2003 à 23:47:45  profilanswer
 

n°372983
belgique
Posté le 27-04-2003 à 01:15:32  profilanswer
 

Si le problème vient vraiment de là, fais toi une fonction nl2br qui remplace les \n par des <br />

n°372992
Scoubidoo
In reblochon we trust
Posté le 27-04-2003 à 01:31:34  profilanswer
 

omicron a écrit :


 
essaie de voir si tu peux filtrer les retours à la ligne  
- soit par une fonction toute faite
- soit, si l'interpréteur php l'accepte, de virer ttes les occurences du caractère 'retour à la ligne' (le 13 je crois) de ta chaîne.
 
a+


 
La fonction nl2br transforme les \n en <br /> mais apparemment, l'interpreteur met kan meme des \n quand il écrit son texte juste avant le <br />.  
Il se produit le meme phénomène si je remplace avec la fonction str_replace(..) (j'ai découvert la fonction str_ireplace, c'ets koi ?).
 
C'est vraiment bizarre alors je me demande pas si c'est le fait de faire mes tests sous un serveur EZphp sous winXP qui pourrait avoir ce prob vu que le retour à la ligne est différent d'unix.
 
En tout cas, ça m'énerve car je comprends pas pourquoi la chaine php n'est pas mise sur une seule ligne.

n°373121
Scoubidoo
In reblochon we trust
Posté le 27-04-2003 à 12:11:04  profilanswer
 

up

n°373170
omicron
Pas de bras, pas de caméra !
Posté le 27-04-2003 à 13:22:05  profilanswer
 

et sinon vois si tu peux regler le pb lors de la formation de la chaîne,
les retours à la ligne ne sont pas apparus seuls... enfin cherche un peu... !!!

n°373240
MagicBuzz
Posté le 27-04-2003 à 14:29:29  profilanswer
 

En PHP, fait un replace de "\n" par "<br/>" ou "" dans ta variable.

n°373282
Scoubidoo
In reblochon we trust
Posté le 27-04-2003 à 15:29:21  profilanswer
 

omicron a écrit :

et sinon vois si tu peux regler le pb lors de la formation de la chaîne,
les retours à la ligne ne sont pas apparus seuls... enfin cherche un peu... !!!


 
la chaine est issue de Mysql donc peut-etre qu'il faudrait faire quelque chose avec mysql avant que ça arrive à php ....

n°373293
MagicBuzz
Posté le 27-04-2003 à 15:49:40  profilanswer
 

Fait ce que je te dis, tu n'auras plus de problème :o

n°373295
Scoubidoo
In reblochon we trust
Posté le 27-04-2003 à 15:52:32  profilanswer
 

MagicBuzz a écrit :

Fait ce que je te dis, tu n'auras plus de problème :o


 
bah j'ai essayé avec $str=str_replace("\n","<br />",$str); et j'ai toujours le meme prob!!  :(

n°373306
THE REAL S​MILEY
The Real Résistance!
Posté le 27-04-2003 à 16:04:34  profilanswer
 

Scoubidoo a écrit :


 
bah j'ai essayé avec $str=str_replace("\n","<br />",$str); et j'ai toujours le meme prob!!  :(  


essaie en remplacant \n\r, pas seulement \n  :jap:

n°373307
MagicBuzz
Posté le 27-04-2003 à 16:07:12  profilanswer
 

t sûr que t'as bien fait :
 
affichage('<?php echo str_replace("\n", "<br/>", $mon_texte_avec_des_br; ?>';);
 
:heink:

n°373309
MagicBuzz
Posté le 27-04-2003 à 16:08:14  profilanswer
 

sinon, peut-être que tu as un retour à la ligne unix alors que tu remplaces un retour à la ligne windows, ou vice versa.
 
a ce moment, replace chr(13) et chr(10)

n°373314
THE REAL S​MILEY
The Real Résistance!
Posté le 27-04-2003 à 16:21:22  profilanswer
 

MagicBuzz a écrit :

sinon, peut-être que tu as un retour à la ligne unix alors que tu remplaces un retour à la ligne windows, ou vice versa.
 
a ce moment, replace chr(13) et chr(10)

oui ou \n et \r comme je l'ai dit plus haut :sarcastic:

n°373526
Scoubidoo
In reblochon we trust
Posté le 27-04-2003 à 21:20:56  profilanswer
 

Merci à vous tous qui m'avait aidé!
 
La solution était :
$str=str_replace("\r\n","<br />",$str);  
 
Maintenant, je n'ai plus de prob avec mes fonctions JS....
Encore merci!
 

mood
Publicité
Posté le   profilanswer
 


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

  [PHP/JS] Grande chaine de car dans une fonction js.

 

Sujets relatifs
[PHP] Question sur include, Header & sleep[C] probleme avec fonction system()
[ASP] tronquer une chaine?[vb(a)] je veux faire fonction qui separe une chaine de char en deux
[PHP]Comment gérer des comptes utilisateurs sur un forum?[ PHP / MySQL ] Auto_increment et INT(11) - Update : le pb est ailleur
[XML + DOM] fonction writetofile() ne marche pasPHP et objet
[PHP] Récupération d'une partie d'une chaîne de caractères 
Plus de sujets relatifs à : [PHP/JS] Grande chaine de car dans une fonction js.


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