Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I send the "&" (ampersand) character via AJAX?

I want to send a few variables and a string with the POST method from JavaScript.

I get the string from the database, and then send it to a PHP page. I am using an XMLHttpRequest object.

The problem is that the string contains the character & a few times, and the $_POST array in PHP sees it like multiple keys.

I tried replacing the & with \& with the replace() function, but it doesn't seem to do anything.

Can anyone help?

The javascript code and the string looks like this:

var wysiwyg = dijit.byId("wysiwyg").get("value"); var wysiwyg_clean = wysiwyg.replace('&','\&');  var poststr = "act=save";  poststr+="&titlu="+frm.value.titlu; poststr+="&sectiune="+frm.value.sectiune; poststr+="&wysiwyg="+wysiwyg_clean; poststr+="&id_text="+frm.value.id_text;  xmlhttp.open("POST","lista_ajax.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send(poststr); 

The String is:

 <span class="style2">&quot;Busola&quot;</span> 
like image 752
candino Avatar asked Jul 02 '12 12:07

candino


People also ask

How do I send an email to someone from my phone?

Write an email On your Android phone or tablet, open the Gmail app . At the bottom right, tap Compose. In the "To" field, add recipients.

How do you send text messages from Gmail?

Click Compose from the Gmail inbox's Main Menu (left sidebar) to open the Compose window. In the To field of your new Gmail message window, type in the recipient's 10-digit cell phone number (no country code), followed by '@' and their SMS gateway address.


2 Answers

You can use encodeURIComponent().

It will escape all the characters that cannot occur verbatim in URLs:

var wysiwyg_clean = encodeURIComponent(wysiwyg); 

In this example, the ampersand character & will be replaced by the escape sequence %26, which is valid in URLs.

like image 200
Frédéric Hamidi Avatar answered Sep 20 '22 14:09

Frédéric Hamidi


You might want to use encodeURIComponent().

encodeURIComponent("&quot;Busola&quot;"); // => %26quot%3BBusola%26quot%3B 
like image 29
Wolfram Avatar answered Sep 19 '22 14:09

Wolfram