【问题标题】:How to call 2 Functions at the same time using Twig AJAX Form?如何使用 Twig AJAX 表单同时调用 2 个函数?
【发布时间】:2017-03-10 10:22:55
【问题描述】:

我正在使用基于LaravelTwigOctoberCMS

我正在使用有 2 个按钮的 Twig AJAX Form。每个调用一个 PHP 函数,actionOne()actionTwo()

如何让第二个按钮同时调用两个函数?

在一个按钮上使用多个data-request 不起作用。并且在data-request 中使用多个用逗号分隔的函数也不起作用。

表格

{{ form_open() }}

    <button type="button" data-request="actionOne">Action 1</button>
    <button type="button" data-request="actionTwo">Action 1 & 2</button>

    <input type="checkbox" name="queuedOne[]" value="{{ record.one }}" />
    <input type="checkbox" name="queuedTwo[]" value="{{ record.two }}" />

{{ form_close() }}  

编辑:我已经更正了 data-request 和 name 的值。

【问题讨论】:

  • $('button[data-request="actionTwo"]').on('click', function() { $('button[data-request="actionOne"]').trigger('click'); } 应该可以工作
  • @DarkBee 好像不起作用,只调用了函数actionOne。

标签: php ajax twig octobercms


【解决方案1】:

您可以通过几种不同的方式来实现这一点。

第一个选项,您可以创建第三个 PHP 方法,该方法简单地完成您想要完成的两件事,然后调用它:

function onActionThree() {
    onActionOne();
    onActionTwo();
}

<button data-request="actionThree">Click me for both previous actions</button>

第二个选项,您可以利用AJAX Framework JS APIactionOneactionTwo 发出两个单独的AJAX 请求。

<button id="action-three-btn">Click me for both previous actions</button>

<script>
   jQuery(document).ready(function ($) {
       $('#action-three-btn').on('click', function (e) {
           e.preventDefault();
           $(this).request('actionOne');
           $(this).request('actionTwo');
       });
   });
</script>

我将留下最后的评论,请阅读https://meta.stackexchange.com/questions/66377/what-is-the-xy-problemhttp://xyproblem.info/。这种对问题的模糊抽象并不能帮助任何人真正解决你的真正问题。

【讨论】:

  • 我能够使用 API 发出两个请求。我把一个大项目分解成小问题。每个功能都可以独立运行,但会增加更多功能。
【解决方案2】:

我不知道这个 CMS,但如果你可以编写自己的 js 代码。然后用这个

$('document').ready(function(){

    function onOne(){

        here your function

    };

    function actionTwo(){

        here your function

    };


    $("#BUTTONNAME").on('click mouseenter keyup keypress',function(){

        onOne();
        actionTwo();

    });

});

另外我给你一个建议,所有这些 CMS 的东西都让编程变得不简单。写你自己的东西然后你就没有这个问题了。

希望对你有帮助

【讨论】:

  • 您最后的评论没有任何意义。不是每次都重新发明轮子。
  • 我应该更具体。它正在调用 php 函数。
  • 好吧,我明白了。为什么你在“Action 2”函数中也调用了“Action 1”函数?或创建一个动作 3 函数,并在其中你调用 Action1 和动作 2,在 btn 中调用你的动作 3。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 2018-03-17
相关资源
最近更新 更多