2012-07-03 197 views
0

那麼,即時通訊嘗試發佈一個變量在jQuery中我的控制器。但似乎發佈不成功。當我嘗試在控制器中檢索它時,我沒有得到任何價值。它說未定義的索引。下面是我有:jquery json post not working

我的jquery:

$(document).ready(function(){ 
    $('.buttons').click(function(){ 
     var data = $(this).attr("value"); 
//  var test = 'test'; 

     jQuery.ajax({ 
      url:'<?php echo $this->Html->url(array('controller'=>'maps','action'=>'instantiateButtonValue'));?>', 
      type: 'POST', 
      async: false, 
      data: data, 
      dataType: 'json' 
//   success:function(data){ 
//    alert(data); 
//   }, 
//   error:function(data){ 
//    alert(data); 
//   } 
     }); 
    }); 
}); 

我的控制器:

function instantiateButtonValue(){ 
      echo $_POST['data']; 


//   $this->set('data','some'); 
//   $this->render('json'); 

     } 
+0

做你檢查的螢火,究竟它正在發送。另外,我認爲你應該在URL中附加「引號而不是引號」 – AjayR

+0

我已經完成了你所說的內容,但附上了「引號不起作用......並且關於檢查它發送給我的控制器的內容,正在發送數據是空的..我真的不知道什麼是錯的。 – Charmie

+1

您是否嘗試過打印整個POST數組,以查看它是否甚至發送值? – Daedalus

回答

0

我想你應該用「引號來代替」報價在URL括

從PHP。您應該編碼爲JSON而不是直接回顯,以通過JQuery檢索值。 像下面那樣

echo json_encode($_POST['data']); 
+0

ive完成它ajay..still沒有運氣:( – Charmie

+0

我發現了一個解決方案,但我的只是臨時.. imean,我相信我的解決方案只是爲傳遞給控制器​​的單個變量.. – Charmie

0

我有一個想法,從這個鏈接here

$(document).ready(function(){ 
    $('.buttons').click(function(){ 
     var data = $(this).attr("value"); 
//  var test = 'test'; 

     jQuery.ajax({ 
      url:"<?php echo $this->Html->url(array('controller'=>'maps','action'=>'instantiateButtonValue'));?>", 
      type: 'POST', 
      async: false, 
      data: {data:data}, 
      dataType: 'json' 
     }); 
    }); 
});