Javascript jquery json post不工作

Javascript jquery json post不工作,javascript,jquery,ajax,json,cakephp,Javascript,Jquery,Ajax,Json,Cakephp,嗯,我正在尝试将jquery中的一个变量发布到我的控制器。但这篇文章似乎并不成功。当我试图在我的控制器中检索它时,我没有得到任何值。它表示未定义的索引。以下是我所拥有的: 我的jquery: $(document).ready(function(){ $('.buttons').click(function(){ var data = $(this).attr("value"); // var test = 'test'; jQuery.aja

嗯,我正在尝试将jquery中的一个变量发布到我的控制器。但这篇文章似乎并不成功。当我试图在我的控制器中检索它时,我没有得到任何值。它表示未定义的索引。以下是我所拥有的:

我的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);
//          }
        });
    }); 
});

我认为你应该在URL中用引号而不是引号括起来

在PHP中,您应该编码为JSON而不是直接echo,以便通过JQuery检索值。 如下

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

我从这个链接中得到了一个想法

$(文档).ready(函数(){
$('.buttons')。单击(函数(){
var data=$(this.attr(“value”);
//var测试=‘测试’;
jQuery.ajax({
url:“”,
键入:“POST”,
async:false,
数据:{data:data},
数据类型:“json”
});
}); 
});

你有没有跟firebug核实过,它到底发送了什么。另外,我认为你应该在URL中用“引号”而不是“引号”括起来“引用不起作用。。。关于检查发送给我的控制器的内容,没有发送任何内容,因此数据为空。。我真的很想知道怎么回事。你有没有试着打印整个POST数组,看看它是否发送了值?所以,为了确保我们在同一页上。。您已尝试打印($\u POST)。。我必须确保,如果您正在打印整个数组,而没有指定一个,那么它不应该返回“undefined index”。即使是一个完全空的数组也会在没有错误消息的情况下打印结果(我刚刚在本地机器上测试过)。。?什么是键/值对?我找到了一个解决方案,但我的只是暂时的。。伊曼,我相信我的解决方案只是将一个变量传递给控制器。。
echo json_encode($_POST['data']);
$(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'
        });
    }); 
});