0

さて、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);
//          }
        });
    }); 
});

私のコントローラー:

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


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

        }
4

2 に答える 2

0

URL では、' 引用符ではなく " 引用符で囲む必要があると思います。

PHP から直接エコーするのではなく、JSON としてエンコードして、JQuery で値を取得する必要があります。以下のように

echo json_encode($_POST['data']);
于 2012-07-03T02:18:39.363 に答える
0

私はこのリンクからアイデアを得ましたここに

$(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'
        });
    }); 
});
于 2012-07-03T02:39:03.993 に答える