6

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 HTML 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.

4
  • Do you have an example of the string that is getting returned, and what you would like to it be? Commented Oct 7, 2010 at 18:49
  • also more code would be nice to see Commented Oct 7, 2010 at 20:02
  • is the slash stored in the database ? Commented Oct 7, 2010 at 20:23
  • @mcgrailm: No it is not in the database Commented Oct 7, 2010 at 20:32

3 Answers 3

2

Could it be as simple as:

stringvar.replace('\\','');
Sign up to request clarification or add additional context in comments.

1 Comment

I was hoping there was an option I could change in jQuery to have it done automatically. I would like to do it without code if possible.
2

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

8 Comments

Using the above and .text to ouput it is displaying this - Click &lt;a href=&quot;example.com&quot;&gt;here&lt;/a&gt;
ok so you see there i no slash being added by jquery now see my new edit to come
Ok awesome. I that may be it....I am going to test it for a few more minutes and get back to you.
I figured out the problem. I needed to strip the slashes on the POST data, which I was doing in one spot, but I was then using the POST data without stripping them in another spot. Sorry for all of the hassle for that. I really appreciate your help.
No problem at at all. Glad I could help and now you know that jQuery does not add slashes too. As a side note I would discourage the use of the word "CLICK" before your link your link should be enough for the user to know to click it not only that in your context the user may try to click the word "CLICK" just my two cents
|
2

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.