PHP citazione forum <blockquote> in TEXTAREA

  • Creatore Discussione Creatore Discussione colomber
  • Data di inizio Data di inizio

colomber

Utente Attivo
4 Dic 2012
232
1
18
Devo ricreare il classico quote che troviamo nei forum.

Ho una tabella dove in ogni campo ci sono dei messaggi e un link che punta alla pagina dove ci sono i messaggi con in più l'id del messaggio. (il link si chiamerà RISPONDI CITANDO)

Una volta cliccato il link recupero l'id del messaggio dall'url eseguo una query e recupero l'autore del messaggio e il messaggio.

Autore e messaggio vanno all'interno di una textarea con l'aggiunta di <blockquote>, nella textarea troveremo una cosa di questo genere:

___________________
<blockquote>
autore
messaggio
</blockquote>


qui scrivo quello che voglio
___________________

premendo invio nel form avvio una query che inserisce il nuovo messaggio nel database formattando con i css il <blockquote> abbiamo una classica citazione di un forum.



fin qui tutto funziona perfettamente il problema sorge quando effettuo una doppia citazione ovvere quando clicco su link rispondi citando e nel messaggio abbiamo già un messaggio con <blockquote>.

Il risultato è:

___________________
<blockquote>
autore2

<blockquote>
autore
messaggio
</blockquote>

messaggio2
</blockquote>


qui scrivo quello che voglio 2
___________________



Non riesco a capire come mai il primo <blockquote> rimane intatto mentre il <blockquote> numero 2 tiene autore sopra e il messaggio sotto qualcuno può aiutarmi grazie?

dovrebbe venire fuori una cosa di questo genere:


___________________
<blockquote>
autore
messaggio
</blockquote>

<blockquote>
autore2
messaggio2
</blockquote>


qui scrivo quello che voglio 2
___________________
 
Ultima modifica:
è normale che ti venga una cosa del genere se hai impostato che l'autore sia ad inizio messaggio e salvi l'intero messaggio (risposta+mess.quotato) nello stesso campo del db. In questo modo un messaggio di risposta (quote+risposta) diventa un "messaggio unico" e l'autore viene messo all'inizio.
Puoi ovviare o mettende l'autore a fine messaggio o, in modo più elaborato cercando l'ultimo tag </blockquote> e quindi inserire l'autore della risposta subito dopo; oppure, ipotizzando da quanto ho capito che tu ora salvi tutto il testo (compreso quello quotato in un unico campo) aggiungere una nuova colonna al db dove inserire gli id dei messaggi quotati e richiamarli di volta in volta :

es. tabella
id_messaggio | testo_messaggio | id_mess_quotato

nella select controlli se id_mess_quotato ha un valore valido e nel caso recuperi i relativi messaggi da inserire in quote.
Ovviamente in "testo messaggio", da ssalvare nel db, va solo la risposta (o il primo mess) escludendo tutto quanto racchiuso tra <blockquote> e </blockquote>

Spero di aver scritto in maniera chiara
 
Spostando l'autore dopo il messaggio il problema è risolto a volte ci si perde in un bicchiere d'acqua.


Grazie mille
 

Discussioni simili