Jump to content

[SOLVED] Function inside JSON


lordzardeck

Recommended Posts

How would you return a javascript function withing JSON encoded in php.

If you use eval you might be able to encapsulate a method inside the json object. However I do advice you not to do that. Json is meant to be used as data carrier just like XML and not to pass methods.

 

I'm sure you can use different approach to reach your goal. Could you describe how your navigation should work in more detail?

Link to comment
Share on other sites

I was unable to use eval because the the json keys and values are surrounded by " ". My navigation is created in by the yui library. The format it needs to be in is this:

 

[
   {"text":"Home"},
   {"text":"Catalog","submenu":
      {"id":"catalogSub","itemdata":
         [
            {"text":"Catalog", onclick: {fn: somefunction}},
            {"text":"Add Book", onclick: {fn: function(){dosomething();}}}
         ]
      }
   },
   {"text":"Patrons"}
]

 

I can create a javascript file that i can dynamically load and execute, but that would involve having to iterate throught the entire array, and involve a lot of extra work. If it comes to that I guess I'd have to, but I would really like a better way. Is there someway to convert a string to a function?

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.