Javascript和问题

I have the following code:

var artist = document.getElementById("txtBoxArtist").value;

When value is plain text, e.g. Biffy Clyro, artist = Biffy Clyro

When value contains &, e.g. Mumford & Sons, artist = Mumford

I the send artist value using AJAX, and recover the value on another php page like this:

var data = "nameTitle=" + title + "&nameArtist=" + artist;

[...]

$nameArtist=$_POST['nameArtist'];

Why does this happen and how to avoid it? It is giving me lots of problems this &symbol...

Thank you all!

I guess you can encode valiables before sending them like this:

 artist = encodeURIComponent(artist);
 title = encodeURIComponent(title);
 var data = "nameTitle=" + title + "&nameArtist=" + artist;

hope this helps.

You need to encode the values before sticking them on the URL.

var data = "nameTitle=" + encodeURIComponent(title) + "&nameArtist=" + encodeURIComponent(artist);

You should also see this.

Some characters are special and need 'escaping' to encode their values - as you are showing using & instead of &.

However, these escaping principles are different for HTML content and for URLs/URIs.

In URI, & is escaped as %26 and not as & - so you should either use that or the appropriate encoding/decoding functions, not the HTML entity encoding/decoding.