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.

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.