You need to do it a bit differently with php json_encode/decode ... i had
this problem when i first started using it....
where you send post data (JSON) as p
$post=str_replace('\"', '"', $_POST['p']);
$json=$post;
$d=json_decode($json,true);
foreach($d as $key=>$val) { ...... do what you will with it after this
unless you know the key names !!
This should do the trick for you
HTH
ALex
----- Original Message -----
From: "Matt" <[email protected]>
To: "Prototype & script.aculo.us" <[email protected]>
Sent: Thursday, June 04, 2009 4:30 PM
Subject: [Proto-Scripty] Re: HTML breaks JSON
Hi again,
I've been running addslashes() on the input before running json_encode
() and it still creates problems when I pass it through AJAX - breaks
HTML tags etc. If I turn addslashes() off, any occurence of "" in the
body text (eg quotes from speakers etc) breaks the code again. Does
anyone have a foolproof method?
Cheers
Matt
On Apr 24, 9:54 pm, Matt Foster <[email protected]> wrote:
> What are you sending to PHP's json_encode? It is expecting a
> structure to serialize into a JSON syntax string.
>
> $struct = array("message" => "<h1>Hello World</h1>Who says we can't
> have any kind of \"quotes\" we want?");
>
> echo json_encode($struct);
>
> If you try to run json_encode on your already JSONified string, yeah
> its going to cause problems...
>
> --
>
> http://positionabsolute.net
>
> On Apr 24, 12:26 pm, "T.J. Crowder" <[email protected]> wrote:
>
> > @Ananth:
>
> > Converting to Base64 would be massive overkill, surely.
>
> > @OP:
>
> > There's no reason you can't include strings containing HTML in JSON
> > data. You just have to make sure your strings are valid string
> > literals, like this:
>
> > {
> > message: "<p>This is HTML.</p>"
>
> > }
>
> > There's nothing special other than making sure the HTML is correctly
> > escaped -- e.g., if you're putting the JSON string in double quotes,
> > naturally any double quotes in the HTML will need a backslash in front
> > of them -- as, for that matter, will any backslashes!
>
> > HTH,
> > --
> > T.J. Crowder
> > tj / crowder software / com
>
> > On Apr 24, 5:05 pm, Ananth Raghuraman <[email protected]> wrote:
>
> > > JSON should not contain HTML for tactical/ease of programming purposes
> > > unless the HTML is there as part of a larger design, but there may or
> > > may
> > > not be implementation restrictions.
> > > If you are facing problems, can you try encoding the HTML string
> > > (Base64)
> > > and decoding back (using Javascript Base64 code ) before display on
> > > the
> > > browser?
>
> > > On Fri, Apr 24, 2009 at 11:30 AM, Matt <[email protected]>
> > > wrote:
>
> > > > Hi there,
>
> > > > I'm using PHP to output some JSON through AJAX to my page. It breaks
> > > > whenever I use a backslash or quote mark.
>
> > > > I've tried using php's json_encode function which doesn't seem to
> > > > help, just breaks it further. I've also tried php's addslashes() to
> > > > the output, again, same problem.
>
> > > > Am I approaching this correctly, fundamentally? Is JSON supposed to
> > > > contain HTML?
>
> > > > Thanks,
>
> > > > Matt
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---