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

时间:2017-03-10 10:22:56

标签: php ajax twig octobercms

我根据OctoberCMSLaravel使用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() }}  

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

2 个答案:

答案 0 :(得分:2)

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

第一个选项,您可以创建第三个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/。这种模糊的问题抽象并没有帮助任何人真正解决你的真正问题。

答案 1 :(得分:0)

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

&#13;
&#13;
$('document').ready(function(){

    function onOne(){

        here your function

    };

    function actionTwo(){

        here your function

    };


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

        onOne();
        actionTwo();

    });

});
&#13;
&#13;
&#13;

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

希望有所帮助