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