2010-10-07 17 views
6

Sto usando il metodo jQuery ajax per ottenere dati dal database e restituire i dati tramite un oggetto json. Tuttavia uno dei valori in questo oggetto json è una stringa HTML. In pratica sto facendo esattamente ciò che viene visto here eccetto che ho bisogno di sapere come posso rimuovere le barre che jQuery sta aggiungendo alla stringa HTML. Qualche idea?Le barre tagliate aggiunte da jQuery quando si restituisce HTML tramite ajax?

Esempio

json.HTML = Click <a href=\"http://example.com/example.php\">here</a>; 

//Needs to be 
json.HTML = Click <a href="http://example.com/example.php">here</a>; 

speravo di fare questo senza il codice, se possibile.

UPDATE

Ok ho scoperto che se lo faccio htmlentites prima di essere restituito, quindi i tagli non sono lì quando il valore entra in gioco. Ora, che la funzione jQuery che userei per inserire questa stringa all'interno di una elemento td senza barre aggiunte dalle funzioni .html o .text.

Ecco come si presenta direttamente dal valore json.HTML,

Click &lt;a href=\&quot;http://example.com\&quot;&gt;here&lt;/a&gt; 

E qui è dopo che è stato visualizzato utilizzando .html

Click <a href=\"http://example.com\">here</a> 

Ed ecco, dopo che è visualizzato con .text

Click &lt;a href=\&quot;http://example.com\&quot;&gt;here&lt;/a&gt; 

Mi chiedo se devo usare .val forse? Oh un'altra cosa, voglio che questo HTML sia visualizzato letteralmente, non l'HTML vero da inserire nel codice.

+0

Avete un esempio della stringa che viene restituita e cosa vorreste fosse? – Ender

+0

anche più codice sarebbe bello vedere – mcgrailm

+0

è la barra memorizzata nel database? – mcgrailm

risposta

2

Dopo aver suonato in giro con questo per un tempo molto lungo. Ho scoperto che stavo tagliando le barre dai dati del post e archiviando quel valore in un array che era corretto, ma successivamente usavo nuovamente i valori del post raw, da cui provenivano le barre. Tutto quello che dovevo fare era usare il valore che avevo già spogliato delle barre.

2

Potrebbe essere semplice come:

stringvar.replace('\\',''); 
+0

Speravo ci fosse un'opzione che potrei cambiare in jQuery per averlo fatto automaticamente. Mi piacerebbe farlo senza codice, se possibile. – Metropolis

2

Non credo che il problema sia jquery aggiungendo barre. Non penso che il tuo restituire correttamente il jSON formi il tuo php stai usando json_encode e dando l'header json? che aspetto ha il risultato JSON se lo salvi come un file di testo?

anche se non si può ottenere di scendere correttamente è possibile utilizzare

unescape function

fuori mettere questa come JSON

$foo = 'Click &lt;a href=&quot;http://example.com&quot;&gt;here&lt;/a&gt;'; 

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
    header("Cache-Control: no-cache, must-revalidate"); 
    header("Pragma: no-cache"); 
    header("Content-type: text/x-json"); 
    echo json_encode($foo); 

e vedere se fa la stessa cosa

EDIT non utilizzare il testo desiderato per qualcosa come

 $('#table_id td').html(json_response); 

che è pseudo codice

+0

Sì, sto usando json_encode e dando JSON intestazione – Metropolis

+0

Utilizzando quanto sopra e .text per ouput si sta visualizzando questo - Clicca < a href = " http://example.com " > qui </a > – Metropolis

+0

ok in modo da vedere non ho aggiunto nessuna barra da jquery ora vedo la mia nuova modifica in arrivo – mcgrailm

Problemi correlati