Home > Archive > PHP Language > January 2008 > Re: problem with sending json encoded data via ajax to a php script
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Re: problem with sending json encoded data via ajax to a php script
|
|
| Anthony Levensalor 2008-01-09, 7:02 pm |
| Pugi! said:
> I guess the solution might be in the use of escape (javascript) and
> urldecode (PHP), but I have not succeeded in making it work yet. Do
> you use those functions and the data you send, on the querystring or
> on the complete url? Other problem is that escape and urldecode are
> not an exact match.
>
use encodeURIComponent in javascript before you assemble as JSON, and
then send it via post through the XHR.
use XMLHttpRequest.setRequestHeader(
"Content-Type", "application/x-www-form-urlencoded")
To set up your XHR for POST, then assemble the data you want to send in
this format:
"name=value&name2=value2&....nameN=valueN"
And where you would normally send null in your XHR, send the data instead.
The great thing about encodeURIComponent() is that all that translation
is done at the server level on most servers (all the ones I've ever
worked on), so once it gets to PHP, it should be okie doke.
If not, contact me privately (the email is in my sig), and we can talk
about the PHP side, this isn't the place for that.
All the best,
~A!
--
anthony at my pet programmer dot com
| |
| Anthony Levensalor 2008-01-09, 7:03 pm |
| *** Pugi! *** wrote a whole bunch of nifty stuff On 1/9/2008 1:35 PM:
> On 9 jan, 16:29, Anthony Levensalor <killf...@mypetprogrammer.com>
> wrote:
>
> This really was very helpful.
> This is how I use it:
> - clientside (javascript):
> var data = new Object();
> data.field1 =
> encodeURIComponent(document.formname.field1.value.trim());
> ...
> qs = YAHOO.lang.JSON.stringify(data);
> ...
> YAHOO.util.Connect.asyncRequest('GET', 'mywebpage.php?data='+qs,
> callback);
>
> - serverside (PHP)
> $data = json_decode(stripslashes(sanitize($_GET[
'data'])), true);
Just do the json_decode call first, and then do the sanitizing and
stripslashing and the like. That should solve your quotes problem.
Glad I could help!
~A!
--
anthony at my pet programmer dot com
| |
| Anthony Levensalor 2008-01-10, 4:01 am |
| On 1/10/2008 3:44 AM, Pugi! wrote:
> On 9 jan, 19:49, Anthony Levensalor <killf...@mypetprogrammer.com>
> wrote:
>
> Without stripslashes no json_decode.
> Input like c:\my documents\test\test.pdf doesn't look to good either.
>
> Pugi!
Ok, can you send me a php snippet? Run the sig all together and
translate the at and dot, shoot me an email, I'll take a closer look.
~A!
--
anthony at my pet programmer dot com
|
|
|
|
|