You are here: Re: problem with sending json encoded data via ajax to a php script (internationalization) « All PHP « IT news, forums, messages
Re: problem with sending json encoded data via ajax to a php script (internationalization)

Posted by Anthony Levensalor on 01/09/08 18:49

*** 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:
>> 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
>
> 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

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация