You may try out the below steps: - Remove that search() from your Items controller. You should not need it. - Just Make the url: "/Items/searchData", instead of *url* *: "/Items/search"**,* in your ajax call - Add the below line in your searchData()
$this->layout = false; On Friday, May 1, 2015 at 4:54:33 PM UTC-4, Vedashree Gowda wrote: > > I am trying to implement a search module by using AJAX. > > There is an index.ctp file in my Items Controller and I have linked my > index.ctp file of Items to my search.ctp file which is present under Items > controller as below: > > For the search.ctp pages the URL displayed is : > http://onlineelectronic.com/Items/search > > In my search.ctp file the code is as follows: > <head> > > > > <title> Search Results</title> > > <?php echo $this->Html->script('// > ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', array('inline' > => false));?> > > <script type="text/javascript"> > > $(document).ready(function() { > > $("#Submit1").click(function () { > > alert('here'); > > $.ajax({ > > type: 'post', > > url: "/Items/search", > > data: { > > name: search > > }, > > beforeSend: function(){ > > $("#resultField").html("Loading..."); > > }, > > success: function (result) { > > jQuery('#resultField').html(result.valueOf($search > )); > > }, > > error: function (response, error) { > > alert("Search :Error"+error); > > }, > > dataType: 'json', > > global: false > > }); > > }); > > }); > > </script> > > </head> > > <div> > > <?= $this->Form->create() ?> > > <fieldset> > > <legend><?= __('Search Item') ?></legend> > > <?php > > echo $this->Form->input('search',['label'=>'Search']); > > ?> > > </fieldset> > > <?=$this->Form->submit('Search Items',['id'=>'Submit1']); ?> > > <?= $this->Form->end() ?> > > </div> > > <fieldset> > > <div id="resultField"> > > </div> > </fieldset> > > > So my ItemsController code is as follows: > > class ItemsController extends AppController > { > > > > > public $helpers = ['Form', 'Html', 'Time']; > > > public function initialize() > { > parent::initialize(); > $this->loadComponent('RequestHandler'); > } > > > public function search(){ > //dummy > } > > > /** > *obtains search result for a given string. > */ > public function searchData() > { > > echo "here"; > $search_data=[]; > var_dump($search_data); > //$search_results = []; > if ($this->request->is('post')) { > $search_data= $this->request->data; > $search_data=implode("|",$search_data); > $search_results = $this->Items->find('all', array('conditions' > =>array('Items.itemName LIKE'=>"%$search_data%"))); > if(!empty($search_results)) { > $this->set(compact($search_results)); > $this->set('_serialize',array('search_results')); > echo json_encode($search_results); > } > } > > > } > > public function beforeFilter(Event $event) > { > parent::beforeFilter($event); > > $this->Auth->allow(['index', 'view','search','searchData']); > > } > } > > > What i have observed is that form tries to call action method search() > from Items Controller so I included a dummy method in controller with no > code. > But when the submit button is clicked only the alert comes up and then the > page is no more responsive. > -- Like Us on FaceBook https://www.facebook.com/CakePHP Find us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group. To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.