如何使用 Twig AJAX Form 同时调用 2 个函数?

How to call 2 Functions at the same time using Twig AJAX Form?

我正在使用 OctoberCMS based on Laravel and Twig

我正在使用具有 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() }}  

编辑:我已经更正了数据请求和名称的值。

我不知道这个 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 方法来简单地完成您想要完成的两件事,然后调用它:

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-problem and http://xyproblem.info/。这种对你问题的模糊抽象并不能帮助任何人真正解决你的真正问题。