Hi All,
I am trying to send some data using Ajax and recieve that data in php code using _POST method.

But my data contains "&" and _POST method takes it as a seperating token and data after tht does not get passed. Does anyone has a solution to this.

Code snippet:

params = "q="+str+"&p="+str1;  //here str1 contains data which has &


  xmlHttp.open("POST",url,false);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.send(params);

And on server side when I use $posted = &$_POST ; it takes & as a seperator which is present as data.

Please someone let me know the workaround or approach to this.

Recommended Answers

All 3 Replies

try encoding your str1 with encodeURIComponent

more about this at w3schools

Thanks John for the input. This what I have done. If one wants to encode and decode the URL in javascript then above reference is fine. In my case i needed to encode at javascript and and decode inside php. The function to be used inside php code is

[I]  preg_replace('/%([0-9a-f]{2})/ie', 'chr(hexdec($1))', (string) $p); [/I]

$p is the string which has encoded value. And the first 2 parameters just does enough to decode back whatever

[I] encodeURIComponent [/I]

has done.

Thanks

just out of curiosity, would str_replace not have worked easier for this?
You have a string (as a variable at least) and you know what other string is inside of it (or could be inside of it), and you know what you want to replace it with.

http://us.php.net/manual/en/function.str-replace.php
Sage

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.