2010-10-07 11 views
6

Estoy utilizando el método jQuery ajax para obtener datos de la base de datos y devolver los datos a través de un objeto json. Sin embargo, uno de los valores en este objeto json es una cadena HTML. Básicamente, estoy haciendo exactamente lo que se ve here, excepto que necesito saber cómo puedo eliminar las barras que jQuery está agregando a la cadena HTML. ¿Algunas ideas?¿Tiras que jQuery agrega al devolver HTML mediante ajax?

Ejemplo

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>; 

Tenía la esperanza de hacer esto sin código, si es posible.

ACTUALIZACIÓN

Ok he encontrado que si hago htmlentites antes de ser devuelta, a continuación, las barras no están allí cuando el valor entra en acción. Ahora, que la función jQuery iba a utilizar para insertar esta cadena dentro de una td elemento sin barras añadidas por las funciones .html o .text.

Aquí es lo que parece directamente desde el valor json.HTML,

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

Y aquí es después de que se visualiza mediante .html

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

Y aquí es, una vez se visualiza usando .text

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

Me pregunto si necesito usar .val quizás? Oh, una cosa más, quiero que este HTML se muestre literalmente, no el HTML real que se insertará en el código.

+0

¿Tiene un ejemplo de la cadena que se devuelve, y lo que le gustaría que fuera? – Ender

+0

también es bueno ver más código – mcgrailm

+0

¿está la barra guardada en la base de datos? – mcgrailm

Respuesta

2

Después de jugar un poco con esto por un tiempo muy largo. Descubrí que estaba quitando las barras de los datos de la publicación y almacenando ese valor en una matriz que era correcta, pero luego estaba usando los valores de la publicación en bruto nuevamente, que es de donde provienen las barras inclinadas. Todo lo que tenía que hacer era usar el valor que ya había desgranado.

2

Podría ser tan simple como:

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

Tenía la esperanza de que hubiera una opción que pudiera cambiar en jQuery para que se haga automáticamente. Me gustaría hacerlo sin código si es posible. – Metropolis

2

No creo que su problema es jQuery añadiendo barras. No creo que devuelvas el json correctamente de tu php ¿estás usando json_encode y dando json header? ¿Cómo se ve el resultado json si lo guarda como un archivo de texto?

también si no se puede llegar a descender correctamente puede utilizar

unescape function

a cabo a poner esto como su 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); 

y ver si hace lo mismo que

EDITAR no usar el texto que desea algo como

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

que es pseudo código

+0

Sí, estoy usando json_encode y dando cabecera JSON – Metropolis

+0

Utilizando lo anterior y .text a ouput se muestra esta - Haga clic < a href = " http://example.com " > aquí </a > – Metropolis

+0

bien por lo que se ve no hay ninguna barra añadida por jquery ahora veo mi nueva edición venir – mcgrailm

Cuestiones relacionadas