我根据OctoberCMS和Laravel使用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() }}
编辑:我已更正了数据请求和名称的值。
答案 0 :(得分:2)
您可以通过几种不同的方式来实现这一目标。
第一个选项,您可以创建第三个PHP方法,它只完成您想要完成的两件事,然后再调用它:
function onActionThree() {
onActionOne();
onActionTwo();
}
和
<button data-request="actionThree">Click me for both previous actions</button>
第二个选项,您可以利用AJAX Framework JS API向actionOne
和actionTwo
发出两个单独的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和http://xyproblem.info/。这种模糊的问题抽象并没有帮助任何人真正解决你的真正问题。
答案 1 :(得分:0)
我不知道这个CMS但是如果你可以编写自己的js代码。然后使用此
$('document').ready(function(){
function onOne(){
here your function
};
function actionTwo(){
here your function
};
$("#BUTTONNAME").on('click mouseenter keyup keypress',function(){
onOne();
actionTwo();
});
});
&#13;
我也给你一个建议,所有这些CMS的东西都让编程变得不容易。写了你自己的东西然后你没有这个问题。
希望有所帮助