- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Salvare una stringa nella barra di una Chat
-
Salvare una stringa nella barra di una Chat
Buongiorno a tutti.
Ho programmato una chat divisa in testo e la barra di inserimento.
Quando si invia la stringa la barra resetta il suo valore.
Fin qua nulla di difficile.
e che i caratteri all'interno delle parentesi non fossero superiori a 30, questo pezzo di stringa si salvasse e rimanesse nella barra per la digitazione successiva.Mi spiego con un esempio.
Questa è la stringa da inviare:
[Maschio] Ciao mi chiamo Raiken
La stringa di caratteri inizia con [ ], i caratteri all'interno sono meno di 30 quindi dopo aver inviato la stringa nella barra rimarrà questa porzione di frase: [Maschio]
Spero di essere stato abbastanza chiaro
-
Ciao Raiken,
in che linguaggio?
-
Molto dipende da com'è fatta la chat.
Al momento del submit del testo chiami una funzione javascript? E' fatta in ajax?
Se fai un reload dell'intera pagina allora il discorso cambia totalmente.
Se usi frame è ancora un altro...
Se è possibile vederla da qualche parte forse si può fare qualcosa.
-
Scusate il ritardo, ma ho passato una settimana sui libri
Allora la chat richiama al submit una function JS per eliminare i valori. I dati vengono inviati ad un'altra pagine che passa in PHP il tutto al DB. Quindi il frame della barra rimane statico, non si aggiorna se non grazie alla function JS.
-
Incolla solo la function che chiama il submit
-
Ecco:
function resetta() { chat_barra.chat_message.value="" chat_barra.chat_message.focus() }
-
Sostituisci
chat_barra.chat_message.value="" ```con
re = /[\S[^]]*]/;
chat_barra.chat_message.value=re.exec(chat_barra.chat_message.value);Dovrebbe funzionare. Ovviamente non posso provare il tuo caso perchè dovrei avere tutta la pagina avanti.
-
Perfetto funziona grazie
Ho provato a modificarla così:
re = /[\S[^]]*]/; if (re.exec(chat_barra.chat_message.value).length<= 20){ chat_barra.chat_message.value=re.exec(chat_barra.chat_message.value); } else{ chat_barra.chat_message.value=""; }
ma non funziona, come mai? Stranamente poi il length mi da sempre uno qualunque numero di caratteri inserisca nella stringa.
-
re = /[\S[^]]*]/; var valore_barra=""; if (chat_barra.chat_message.value.match(re)){ var testo=re.exec(chat_barra.chat_message.value).toString()//valore compreso le parentesi quadre if (testo.length<=20){ valore_barra=testo } } chat_barra.chat_message.value=valore_barra
Così dovrebbe andare.
-
Perfetto funziona tutto.
Grazie ancora per la disponibilità e per l'aiuto