使用AJAX时访问requestParame - Symfony

时间:2011-01-26 10:57:17

标签: php javascript jquery symfony1

我有一个下拉选择列表的表单。

我还有一个动作,它会查找请求参数:

的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;
  }
}

现在,当网址为: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进行过滤,但它不起作用。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

不是将?type =“放入data属性,而是将其放在url中。这不会导致您自己输入URL时遇到的相同请求吗?