Я использую OctoberCMS на основе Laravel и Twig .
Я использую Twig AJAX Form, который имеет 2 кнопки. Каждый вызов функции 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() }}
Изменить: я скорректировал значения запроса данных и имени.
Есть несколько способов сделать это.
Первый вариант, вы можете создать третий метод PHP, который просто выполняет обе вещи, которые вы хотите выполнить, а затем называет это:
function onActionThree() { onActionOne(); onActionTwo(); }
а также
<button data-request="actionThree">Click me for both previous actions</button>
Второй вариант, вы можете использовать JS API AJAX Framework, чтобы сделать два отдельных запроса AJAX для действия actionOne
и actionTwo
.
<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/ . Эта неопределенная абстракция ваших вопросов не помогает кому-либо действительно решать вашу реальную проблему.
Я не знал эту CMS, но если вы можете написать собственный js-код. Затем используйте это
$('document').ready(function(){ function onOne(){ here your function }; function actionTwo(){ here your function }; $("#BUTTONNAME").on('click mouseenter keyup keypress',function(){ onOne(); actionTwo(); }); });