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" <i...@leedsguide.co.uk> To: "Prototype & script.aculo.us" <prototype-scriptaculous@googlegroups.com> 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 <mattfoste...@gmail.com> 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" <t...@crowdersoftware.com> 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 <araghuram...@gmail.com> 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 <guitarroman...@gmail.com> > > > 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 prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---