I Am trying to make an ajax request from the view to controller, ajax requst is working fine, but from controller nothing is returned back to the view. i don't know where is the problem.. what i am trying is in my view side i am displaying some data from the controller and there is one select box. whe i select a city from the select box, it calls the ajax request and should show the result from that particular city in the view.ctp.
$('#cityid').change(function() { $city_id= $('#cityid :selected').val(); alert($city_id); $.ajax({ url : "<?php echo Router::url(array('controller' => 'deals', 'action' =>'topdeals'), true); ?>", type : "POST", cache : false, data : {city_id: city_id}, success : function(data){ alert(data); } }); }); }); and in the view
<div id="form"> <?php echo $this->Form->create('Deal', array('action'=>'topdeals','type'=>'post'));?> <?php echo $this->Form->input('city_id', array('label'=>'City','type'=>'select', 'id'=>'city_id','empty'=>'select City','options' =>$city)); echo $this->Form->end(); ?> </div> <div class="line"></div> <?php if(!empty($topdealsortbyrank)) { foreach($topdealsortbyrank as $topdealsortbyrank) {?> <div class="items"> <div class="itemslogo" > <?php echo $this->Html->image('deal/dealimage/'.$topdealsortbyrank['Deal']['image'],array('width'=>"100px",'height'=>"80px"));?> </div><!-- items Logo ends--> <div class="itemdetails"> <b><?php echo $topdealsortbyrank['Advertiser']['name']?></b> <p class="red"><?php echo $topdealsortbyrank['Deal']['title']?></p> <?php } }?> And in the controller
function topdealajax() { $this->log('Ajax call -----------------'); if ($this->request->isAjax()) { $this->log('inside if request is ajax -----------------'); $this->layout = null; $this->view = 'topdeals'; if(!empty($this->request->data)) { $this->log('inside if not empty of params -----------------'); $data = $this->request->data['city_id']; $this->log($data); $city_id=$data['city_id']; $this->log($city_id); $city_id= $this->request->data['city_id']; // $this->log($city_id); $topDealSortbyRank1=$this->Deal->find('all', array('conditions'=>array('date_expiry >=' =>date('Y-m-d ') , 'date_expiry <=' => 'date_expiry','Deal.city_id'=>$city_id),'order'=>array('Deal.deal_rank ASC'))); //$this->log($topDealSortbyRank1); $this->set('topdealsortbyrank',$topDealSortbyRank1); $this->render('topdeals'); } } }