【问题标题】:accessing requestParameters when using AJAX - Symfony使用 AJAX 时访问 requestParameters - Symfony
【发布时间】:2011-01-26 10:57:17
【问题描述】:

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

我还有一个动作,寻找请求参数:

索引操作:

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 过滤,但它不起作用。

有什么想法吗?

谢谢

【问题讨论】:

    标签: php javascript jquery symfony1


    【解决方案1】:

    与其将 ?type=" 放入 data 属性中,不如将其放入 url 中。这会不会导致您在自己键入 URL 时收到相同的请求?

    【讨论】:

    • 太棒了!我删除了数据并将 ?type= 添加到 url 并且效果很好!
    猜你喜欢
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多