2011-01-26 18 views
0

我有一個表單是一個下拉選擇列表。訪問使用AJAX時的requestParameters - Symfony

我也有一個動作,是尋找請求參數:

的indexAction:

if($this->getRequest()->isXmlHttpRequest()) 
{ 
    $this->setLayout('layout'); 
} 
$param = $this->getRequestParameter('type'); 

    if($param == 'video') 
    { 
    isicsBreadcrumbs::getInstance()->addItem('All Videos', '@homepage'); 
    $pager = new sfPropelPager('Item', 15); 
    $pager->setPage($request->getParameter('page', 1)); 
    $pager->setPeerMethod('doSelectLatestVideo'); 
    $pager->init(); 
    $this->pager = $pager; 
    } 
    elseif($param == 'photo') 
    { 
    isicsBreadcrumbs::getInstance()->addItem('All Photos', '@homepage'); 
    $pager = new sfPropelPager('Item', 15); 
    $pager->setPage($request->getParameter('page', 1)); 
    $pager->setPeerMethod('doSelectLatestPhoto'); 
    $pager->init(); 
    $this->pager = $pager; 
    } 
} 

現在當URL是能正常工作:example.com?type=video - 它裝載視頻內容

問題是,我想更新使用AJAX的內容,因爲我通過AJAX做到了這一點,我很努力地獲得requestParamater,因爲它不再位於mu URL中;

AJAX功能:

$("#filter-form-newsroom .submit").live('click', function(e){ 
$("#search-results").html(ajax_loading); 
var content_type = $("#filter-form-newsroom #type").val(); 
$.ajax(
{ 
    url: "", 
    type: "GET", 
    data: "?type=" + content_type, 
    success: function(data){ 
    var $response=$(data); 
    var filtered_response = $response.find('.post'); 
    $("#search-results").html(filtered_response).hide().fadeIn("fast"); 
    } 
    }); 
e.preventDefault(); 
}); 

該功能檢測參數在我的選擇列表和應該由requestParamter過濾,但它不工作。

任何想法?

感謝

回答

2

而不是將?TYPE =」到data屬性,把它放在url。那不是導致相同的請求你當你鍵入URL自己?

+0

好極了!我刪除了數據並將?type =添加到了網址,並且完美無瑕! – terrid25 2011-01-26 11:05:55