我有一个下拉选择列表的表单。
我还有一个动作,它会查找请求参数:
的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进行过滤,但它不起作用。
有什么想法吗?
由于
答案 0 :(得分:2)
不是将?type =“放入data
属性,而是将其放在url
中。这不会导致您自己输入URL时遇到的相同请求吗?