2015-12-14 71 views
1

我正在使用CakePHP 3.1和jQuery Ajax。jQuery Ajax不能在CakePHP中工作

下面是我的表單代碼:

echo $this->Form->textarea('comment',array('class'=>'ckeditor','id'=>'comment1')); 

    echo $this->Form->button('Send',array('id'=>'save')); 

我的Ajax代碼:

<script type="text/javascript"> 

$(document).ready(function() { 

    $("#save").click(function() {  
     var str = $("#comment1").val(); 
     $.ajax({ 
     method: "POST", 
     url: "<?php echo Router::url(array('controller'=>'users','action'=>'view'));?>" , 
     data : {comment:str}, 
     success: function (data) 
     { 
      alert(data); 
     } 

     }); 

     }); 

    }); 

</script> 

而我相應的動作是,

public function view($id = null) { 
if($this->request->is('ajax')){ 

       $this->layout = 'ajax'; 
       $this->render('ajax'); 
       $na=$_POST['comment']; 
       echo $na; 
} 
} 

我不知道是什麼問題是。它沒有調用相應的操作。

+0

怎樣的URL看起來像,什麼是錯誤控制檯 – madalinivascu

+0

@madalin ivascu沒有數據傳遞給視圖操作 –

+0

你怎麼知道沒有數據通過,你能看到在Chrome瀏覽器或Firefox網絡標籤中發送了什麼?並且不要在$ _POST中使用蛋糕,你應該使用'$ this-> request-> data'來獲取數據,就像[here]一樣(http://book.cakephp.org/3.0/en/controllers/request-response。 html#request-body-data) – skywalker

回答

1

我相信我的問題是,我用CKEditor。因此,要獲得的CKEditor textarea的價值,我們需要使用下面的代碼:

echo $this->Form->textarea('comment',array('class'=>'ckeditor','id'=>'editor1')); 
    echo $this->Form->button('Send',array('id'=>'save')); 

取而代之的是var str = $("#comment1").val();我們需要使用

var value = CKEDITOR.instances['editor1'].getData();