开发者

Strip slashes that jQuery adds when returning HTML via ajax?

I am using the jQuery ajax method to get data from the database and return the data via a json object. However one of the values in this json object is an HTML string. I am basically doing exactly what is seen here except I need to know how I can remove the slashes that jQuery is adding to the HT开发者_开发问答ML string. Any ideas?

Example

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

I was hoping to do this without code if possible.

UPDATE

Ok I found that if I do htmlentites before it is returned, then the slashes are not there when the value comes in. Now, which jquery function would I use to insert this string inside a td element without slashes being added by .html or .text functions.

Here is what it looks like directly from the json.HTML value,

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

And here is after it is displayed using .html

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

And here is after is it displayed using .text

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

I wonder if I need to use .val maybe? Oh one more thing, I want this HTML to be display literally, not the actual HTML to be inserted into the code.


Could it be as simple as:

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


I don't think your problem is jquery adding slashes. I don't think your returning the json properly form your php are you using json_encode and giving json header ? what does the json result look like if you save it as a text file ?

also if you can't get it to come down properly you can use

unescape function

out put this as your 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);

and see if does the same thing

EDIT dont use text you want something like

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

that is pseudo code


After playing around with this for a VERY long time. I found out that I was stripping the slashes from the post data and storing that value in an array which was correct, but I was then later using the post values raw again which is where the slashes were coming from. All I needed to do was use the value that I had already stripped the slashes on.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜