首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用symfony UrlHelper的Ajax

使用symfony UrlHelper的Ajax
EN

Stack Overflow用户
提问于 2011-11-20 08:04:16
回答 2查看 537关注 0票数 0

我使用UrlHelper执行删除操作,如下所示:

<?php echo link_to('delete', '@foo_delete?id=' . $foo->id, array('method'=>'DELETE'))?>

它可以生成各种神奇的javascript输出,并且可以正常工作。

现在我在想,有没有一种简单的方法可以使用UrlHelper来做同样的ajax风格的事情?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-20 18:52:22

Symfony 1.0中的link_to_remote已被弃用。因此,您可以安装sfJqueryReloadedPlugin并使用jq_link_to_remote()

代码语言:javascript
复制
<?php use_helper('jQuery');

<?php echo jq_link_to_remote('delete', array(
  'url' => '@foo_delete?id=1', 
  'confirm' => 'Are you sure?', 
  'csrf' => 1, 
  'method' => 'delete')) ?>

但是,这样做有一个问题:sfJqueryReloadedPlugin不支持DELETE方法,所以您可以在插件上做一个小小的更改。在plugins/sfJqueryReloadedPlugin/lib/helper/jQueryHelper.php中,您可以阅读:

代码语言:javascript
复制
if ((isset($options['method'])) && (strtoupper($options['method']) == 'GET')) $method = $options['method'];

应该是:

代码语言:javascript
复制
if ((isset($options['method'])) && (strtoupper($options['method']) == 'GET' || strtoupper($options['method']) == 'DELETE')) $method = $options['method'];

(我只是向插件开发人员提出了这个更改)

票数 1
EN

Stack Overflow用户

发布于 2011-11-20 18:13:24

可以-您可以;-)

这是一个简单的框架,用于您的操作:

代码语言:javascript
复制
/* is it an AJAX request ? */
if($request->isXmlHttpRequest()){
    /* do what you want to do */

    /* Text as result */
    return $this->renderText("All worked well with ajax");
}

当然,您可以使用JSON作为返回、特定的HTTP头或其他一些改进。这取决于您的JS实现。

所有这些都被很好地记录下来了:

  • Jobjeet Tutorial Day 18: AJAX
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8198362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档