2011-09-07 42 views
0

我想用Kohana中的jQuery做一個簡單的測試帖子。請注意,當我不包含任何參數時,它工作正常。但是當我這樣做,它停止工作。下面是jQuery的崗位:不能用jQuery和Kohana php框架發佈參數

 var url = "home/order"; 
     $.post(url, { name: name}, function(data) { 
       alert('test'); 
     }); 

而這裏的操作方法(不去管它做什麼,這只是廢話了,我其實並沒有使用參數都爲這個測試,我只是希望它返回示警戒的,所以我現在看到它的工作原理,但請記住,它的作品時,我有沒有參數):

public function action_order($name) 
{ 
    $view = new View('home/index'); 
    $head = new View('home/head'); 
    $this->template->head = $head; 
    $this->template->content = "TEST"; 
} 

最後,我居然想在這裏的兩個參數,而是簡單說明現在就來試試讓它工作。

那麼,爲什麼不工作?我一直在Asp.Net MVC中做這類事情。它與路由有關嗎?我只有默認路由設置。我是否需要添加一些內容以便能夠接受除名爲「id」之外的參數?

我從來沒有做這樣的在Asp.Net MVC東西,所以它似乎並不像它給我,但也許這就是不同,這裏,我不知道......

還是我沒有傳遞參數或接受Kohana的正確方式?

回答

1

所有傳遞給jQuery $.post方法的數據都會去Request::post()方法。要在控制器中訪問這些數據,請使用。

+0

好的,謝謝,我會研究一下。我最終還發現你可以使用$ this-> request-> param('name',FALSE);太...但如果你不介意,另一個簡單的問題:我如何返回一個值?我試過$ this-> request-> response =「TEST」;但那不起作用。所有我想要的是返回一個字符串,以便我可以提醒數據回調參數...在Asp.Net MVC我只是說「返回」測試「;」這裏的等值是什麼? – Anders

+0

$ this-> request-> param('name')要求url爲/ controller/action/name。您需要爲此使用不同的路由(因爲您使用默認路由,該路由在操作不是名稱後採用id)。我建議你詳細閱讀文檔 - http://kohanaframework.org/3.2/guide/kohana/routing。在Kohana中,路由的工作原理與ASP.NET MVC完全不同,但如果沒有很好的理解,你會一直遇到問題。在Kohana中,你不會返回一個值,而是將它傳遞給視圖。如果你使用模板控制器,你可以做$ this-> template-> content ='TEST'。 – matino

+0

好的,謝謝,但我試過了,而且奇怪的只有在我填充模板的其他部分($ head等)時纔有效,這意味着我得到了一個完整的視圖。這在某些情況下可能很有用,但真的沒有辦法只返回一個值嗎?如果我按照你的建議做,它似乎只能提供一個完整的視圖,而且我經常只需要一個值來在警告框或其他內容中提醒,或者可以在不加載整個視圖的情況下將內容加載到單個div中? – Anders