2012-07-03 2 views
0

Ну, я пытаюсь опубликовать переменную в jquery для моего контроллера. Но кажется, что публикация не увенчалась успехом. Я не получаю никакого значения, когда пытаюсь получить его в своем контроллере. Он говорит о неопределенном индексе. Вот что у меня есть:jquery json post не работает

мой 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

ive сделал то, что вы сказали, но вложив его в «кавычки, не работает ... и в отношении с проверкой того, что он отправляет моему контроллеру, ничего отправляется, поэтому данные имеют нулевое значение. Я действительно задаюсь вопросом, что не так. – Charmie

+1

Вы пробовали распечатать весь массив POST, чтобы узнать, даже ли он отправляет значение? – Daedalus

ответ

0

Я думаю, вы должны заключить с "кавычки вместо" кавычек в URL

От PHP. вы должны закодировать как JSON вместо прямого эха, чтобы получить значение JQuery. , как показано ниже

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

Ive сделал это ajay..поэтому не повезло :( – 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' 
     }); 
    }); 
}); 
Смежные вопросы