Question

I have a controller called User.i write three functions in that controller, ie; function1,function2,function3 each functions have corresponding view file in the View/User folder.my problem is , in my function1.ctp file i create a left menubar using jquery. there are three menus in that menubar,when i click each menu, i want to load the content of function1.ctp ,function2.ctp function3.ctp with the help of ajax request to the controler .how we can do this? is this possible..? if anybody can help me..please reply

Was it helpful?

Solution

Of course it is possible - AJAX defines it as possible.

If you already have the three functions set-up and see them rendering their views when you go to example.com/yourcontroller/functionName then you're almost tehre.

What you need to do now on the client side is when a user clicks on a main-menu - load the submenu, right? Well attach a javascript click function callback to the clicked HTML item and when that event occurs call the server via AJAX.

You will need to ask yourself "What do I need to return from the server - HTML or JSON?" In the first case - when you receive the HTML data back just put it in the DOM where you want it to be. In the second case you will need to process the JSON and build HTML or whatever.

This was the answer, now some advice.

Do you absolutely really, really need to use AJAX for menus? Do they change that often?

Remember: 1 AJAX call == 1 request to the server Are your sub-menus really that data/change intensive that you need to load them like this? If your menus change based on the user's location (in the site) or user actions for example, ok you can use this, but otherwise you're killing a mosquito with a bazooka! You should try to keep the data exchange as low as possible, gzip the server returns, etc. etc. This solution could be an overkill for this situation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top