2015-05-04 48 views
-3

我正在使用cakePHP 3.0,並在使用ajax時遇到問題。事實上,我想執行的操作我的陣列控制器上的「SpecimensController」從我的觀點來的「viewTab」「標本」CakePHP - 如何將URL傳遞給ajax?

<script type="text/javascript" > 
var tab = new Array(); 
function updateResult(){ 
     $.ajax({ 
      type:"POST", 
      url:"<?php echo Router::url(array('controller'=>'specimens','action'=>'index'));?>", 
      data:{datas: $("select[name='filtreVariable\\[\\]']").map(function(){return $(this).val();}).get()}, 
      dataType: 'text', 
      async:false, 
      success: function(data){ 
       alert('success'); 
      }, 
      error: function (data) { 
       alert("error"); 
      } 
     }); 
} 

$("#filtre").submit(function(){ 
    updateResult(); 
}); 
</script> 

行動「viewTab」只是做:

echo "success"; 

但我無法找到正確的URL,因此可以調用函數成功。我嘗試了很多東西,並且總是有被調用的ajax的函數錯誤。 :/

+0

嘗試調試像'錯誤:功能(jqXHR,textStatus,errorThrown){警報( 'errorThrown')};' –

+0

你是什麼意思約「但是我無法找到正確的URL,因此可以調用函數成功。」 ?你找不到哪個網址? – Sojtin

+0

[Ajax not calling success function]可能的重複(http://stackoverflow.com/questions/30002886/ajax-not-calling-success-function) – ndm

回答

0

如果你還沒有,請將這行代碼在你的AppController在您的初始化函數是:

public function initialize() 
{ 
    parent::initialize(); 
    $this->loadComponent('RequestHandler'); 
} 

在你的控制器,你通過AJAX調用該函數,你可以試試這樣的:

public function index() 
{ 
    $data = ['testing']; 
    $this->set(compact('data')); 
    $this->set('_serialize', 'data'); 
} 

http://book.cakephp.org/3.0/en/controllers/components/request-handling.html

+0

嘿謝謝你的回答。但我已經這樣做了:/ – Salecoune