HighDots Forums  

Stringhe lunghe e alert

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss Stringhe lunghe e alert in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
J_Zanetti
 
Posts: n/a

Default Stringhe lunghe e alert - 02-14-2005 , 05:30 AM






Salve sto scrivendo un'applicazione in cui devo mandare in output un alert
contenente una stringa scritta dall'utente in una form (poi scritta e
ripescata da database).
Il codice è generato dinamicamente (php) e succede spesso che se l'utente
scrive una frase lunga e preme il tasto invio, la frase va a capo. Risultato
il codice risultatnte fornisce codice del tipo:
alert('oggi è lunedi.
domani andiamo in centro?');
Il che non fa partire l'alert dando l'errore "stringa senza
terminazione".....come faccio a risolvere questo problema?


--
=============== Totò alias J_Zanetti ================
Tessera #9 "Nel segno di Cruz"
Tessera #0 #7 "ANDY SCHIET ZE ALLEMAAL" (fondatore)
============== totobeNO (AT) SPAMtin (DOT) it ===============



Reply With Quote
  #2  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Stringhe lunghe e alert - 02-14-2005 , 05:42 AM






In data Mon, 14 Feb 2005 10:30:04 GMT, J_Zanetti ha scritto:

Quote:
Salve sto scrivendo un'applicazione in cui devo mandare in output un alert
contenente una stringa scritta dall'utente in una form (poi scritta e
ripescata da database).
Il codice è generato dinamicamente (php) e succede spesso che se l'utente
scrive una frase lunga e preme il tasto invio, la frase va a capo. Risultato
il codice risultatnte fornisce codice del tipo:
alert('oggi è lunedi.
domani andiamo in centro?');
Il che non fa partire l'alert dando l'errore "stringa senza
terminazione".....come faccio a risolvere questo problema?
Io non ho ben capito...
se la prendi lato server vuol dire che hai registrato lato server questo "a
capo", corretto?
Se sì io risolverei lato server (con codice php una bella regular
expression che sostituisce ascii 10/13 con uno spazio, per esempio).

--
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"

B.M.


Reply With Quote
  #3  
Old   
Agostino De Matteis
 
Posts: n/a

Default Re: Stringhe lunghe e alert - 02-14-2005 , 05:46 AM



On Mon, 14 Feb 2005 11:42:16 +0100, Cristiano Larghi
<c.larghi_NOSPAM (AT) editaliasrl (DOT) it> wrote:

Quote:
Se sì io risolverei lato server (con codice php una bella regular
expression che sostituisce ascii 10/13 con uno spazio, per esempio).
Con "\n", cosi' si mantiene l'"a capo".

'bye


Reply With Quote
  #4  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Stringhe lunghe e alert - 02-14-2005 , 05:50 AM



In data Mon, 14 Feb 2005 10:46:05 GMT, Agostino De Matteis ha scritto:

Quote:
Con "\n", cosi' si mantiene l'"a capo".
Mi sa però che l'acapo non lo vuole, così a naso...
Attenzione anche a \r, nel caso (mi sa che se converti sia ascii 10 che 13
con \n rischi un doppio "a capo"; da verificare ma ricordo un qualcosa...)

--
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
B.M.


Reply With Quote
  #5  
Old   
J_Zanetti
 
Posts: n/a

Default Re: Stringhe lunghe e alert - 02-14-2005 , 05:55 AM




"Cristiano Larghi" <c.larghi_NOSPAM (AT) editaliasrl (DOT) it> ha scritto
Quote:
Io non ho ben capito...
se la prendi lato server vuol dire che hai registrato lato server questo
"a
capo", corretto?
Se sì io risolverei lato server (con codice php una bella regular
expression che sostituisce ascii 10/13 con uno spazio, per esempio).
Ciao, grazie !
Ci avevo pensato ma non sono riuscito a trovare la funzione adatta :/ Ho
provato trim(), ma mi memorizza ugualmente su database la stringa con gli "a
capo". Non ti chedo qual'è la funzione php altrimenti divento OT )

--
=============== Totò alias J_Zanetti ================
Tessera #9 "Nel segno di Cruz"
Tessera #0 #7 "ANDY SCHIET ZE ALLEMAAL" (fondatore)
============== totobeNO (AT) SPAMtin (DOT) it ===============




Reply With Quote
  #6  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Stringhe lunghe e alert - 02-14-2005 , 06:09 AM



In data Mon, 14 Feb 2005 10:55:05 GMT, J_Zanetti ha scritto:

Quote:
Ci avevo pensato ma non sono riuscito a trovare la funzione adatta :/ Ho
provato trim(), ma mi memorizza ugualmente su database la stringa con gli "a
capo". Non ti chedo qual'è la funzione php altrimenti divento OT )
Più che altro non la so, ma le regular expression sono più o meno uguali
per tutti i linguaggi (escludendo quell'animale di c# che mi sta facendo
dannare).
in javascript sarebbe un qualcosa del tipo (come dicevo sto studiandole in
c#, spero di non scrivere un erroraccio) stringa=stringa.replace(/\n/g,"
").replace(/\r/g,""); //attenzione come dicevo sopra al doppio "a capo",
non ricordo bene la logica.
In php sarà più o meno la stessa cosa, basta che ti cerchi la sintassi
corretta.

--
"e mai che mi sia venuto in mente
di essere più ubriaco di voi
di essere molto più ubriaco di voi"
F.D.A.


Reply With Quote
  #7  
Old   
J_Zanetti
 
Posts: n/a

Default Re: Stringhe lunghe e alert - 02-14-2005 , 06:21 AM




"Cristiano Larghi" <c.larghi_NOSPAM (AT) editaliasrl (DOT) it> ha scritto
Quote:
Più che altro non la so, ma le regular expression sono più o meno uguali
per tutti i linguaggi (escludendo quell'animale di c# che mi sta facendo
dannare).

Ok, ora che ho capito la solzione che devo intervenire su php mi butto su
google
grazie ancora!
ciao!

--
=============== Totò alias J_Zanetti ================
Tessera #9 "Nel segno di Cruz"
Tessera #0 #7 "ANDY SCHIET ZE ALLEMAAL" (fondatore)
============== totobeNO (AT) SPAMtin (DOT) it ===============




Reply With Quote
  #8  
Old   
ZER0
 
Posts: n/a

Default [OT] Re: Stringhe lunghe e alert (was: Stringhe lunghe e alert) - 02-14-2005 , 06:23 AM



On Mon, 14 Feb 2005 10:55:05 GMT, J_Zanetti wrote:

Quote:
Ci avevo pensato ma non sono riuscito a trovare la funzione adatta :/ Ho
provato trim(),
trim serve a eliminare gli spazi, tu vuoi fare ben altro.

Quote:
ma mi memorizza ugualmente su database la stringa con gli "a
capo".
La cosa corretta non e' modificare i dati prima che vengano salvati su DB.
Va benissimo lasciare le stringhe con "gli a capo", in quanto tu vuoi solo
cambiare il modo in cui essi vengono rappresentati a schermo.

Metti caso che un domani tu voglia visualizzarli in una textarea, o in un
div, piuttosto che in un alert javascript. Se modifichi direttamente i dati
sul DB per ottimizzare quest'ultima visualizzazione, ti troverai in
difficolta' negli altri casi.

E' sempre il solito discorso di tener separata la forma dal contenuto.

Quindi, salva pure i dati cosi' come sono. E modificali solo in fase di
visualizzazione.

Qualcosa tipo:

<script type="text/javascript">
alert("<?=str_replace("\r\n","\\r\\n",$str)?>");
</script>

Dove $str e' ovviamente la stringa recuperata da DB.

--
ZER0

~ The Tangent Universe collapsed 5951 days, 5 hours, 41 minutes and 32 seconds ago.

on air ~ " INCOMPLETE Donnie Darko - Ave Mariabd5960c4eb4b214cf8a0b0c619874c680021fe7200600 000ac44000000b9"


Reply With Quote
  #9  
Old   
ZER0
 
Posts: n/a

Default [OT] Re: Stringhe lunghe e alert (was: Stringhe lunghe e alert) - 02-14-2005 , 06:28 AM



On Mon, 14 Feb 2005 10:55:05 GMT, J_Zanetti wrote:

Quote:
ma mi memorizza ugualmente su database la stringa con gli "a
capo".
La cosa corretta non e' modificare i dati prima che vengano salvati su DB.
Va benissimo lasciare le stringhe con "gli a capo", in quanto tu vuoi solo
cambiare il modo in cui essi vengono rappresentati a schermo.

Metti caso che un domani tu voglia visualizzarli in una textarea, o in un
div, piuttosto che in un alert javascript. Se modifichi direttamente i dati
sul DB per ottimizzare quest'ultima visualizzazione, ti troverai in
difficolta' negli altri casi.

E' sempre il solito discorso di tener separata la forma dal contenuto.

Quindi, salva pure i dati cosi' come sono. E modificali solo in fase di
visualizzazione:

<script type="text/javascript">
alert("<?=str_replace("\r\n","\\r\\n",$str)?>");
</script>

Dove $str e' ovviamente la stringa recuperata da DB.

--
ZER0

~ The Tangent Universe collapsed 5951 days, 5 hours, 46 minutes and 41 seconds ago.

on air ~ "Greenday - When I Come Around"


Reply With Quote
  #10  
Old   
Agostino De Matteis
 
Posts: n/a

Default Re: Stringhe lunghe e alert - 02-14-2005 , 06:28 AM



On Mon, 14 Feb 2005 11:50:17 +0100, Cristiano Larghi
<c.larghi_NOSPAM (AT) editaliasrl (DOT) it> wrote:

Quote:
Con "\n", cosi' si mantiene l'"a capo".
Mi sa però che l'acapo non lo vuole, così a naso...
Attenzione anche a \r, nel caso (mi sa che se converti sia ascii 10 che 13
con \n rischi un doppio "a capo"; da verificare ma ricordo un qualcosa...)
Per essere precisi le combinazioni dovrebbero essere "\n", "\r" e
"\r\a" per i vari OS. Sostituire prima l'ultima e poi le altre due.
Ad ogni modo la stringa in PHP non deve contenere "\n" come carattere
ma "\\n" in modo che poi la stringa Javascript abbia "xxxxx\nyyyy" e
non:
xxxxxx[carattere a capo]
yyyyy

Per essere precisi, dato che si tratta di PHP, sarebbe da usare
addslashes che gestisce tutto senza usare regex direttamente.

$outstring=addslashes($outstring);
echo "alert('$outstring');";

Da notare che questa "sostituzione di caratteri" andrebbe fatta prima
di inserire la stringa nel database e non all'output dopo averla presa
dal database o ci potrebbero essere rischi di sql injection.

'bye


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.