Как получить значение переменной после отправки формы на простой странице?

#octobercms

#octobercms

Вопрос:

 ==
function onCheck()
{
   // It's simple page, not component, partial or controller
   // Therefore this syntax is right (according October docs)
   $this['myvar'] = "Hello";
}
==

<form class="dates" action="" method="POST" data-request="onCheck">
    <input type='text' class='date_inout' name="start" id='start'>
    <input type='text' class='date_inout' name="end" id='end'>
    <input type="submit" value="Подобрать">
</form>

<h1>{{ myvar }}</h1>
  

myvar не выводится. Мне нужно получить myvar только после отправки формы, не onStart или onInit

Заранее благодарю вас!

Ответ №1:

Вам нужен вывод только после ajax, тогда вам нужно сделать это

 ==
function onCheck()
{
   $dates = post('start') . ' - ' . post('end');
   return ['#myvarContsiner' => "Hello " . $dates];
   //         ^ this id
}
==

<form class="dates" action="" method="POST" data-request="onCheck">
    <input type='text' class='date_inout' name="start" id='start'>
    <input type='text' class='date_inout' name="end" id='end'>
    <input type="submit" value="Подобрать">
</form>

<h1 id="myvarContsiner"></h1>
<!-- this id ^ -->
  

Теперь, когда вы нажмете, submit button оно перейдет к onCheck и вернет значение, ['#myvarContsiner' => "Hello " . $dates] так что в основном "Hello " . $dates оно будет обновлено в <h1 id="myvarContsiner"></h1> соответствии с соответствующим идентификатором.

и ваш покажет значение, когда вы вернете его из onCheck

если у вас есть какие-либо сомнения, пожалуйста, прокомментируйте.

Комментарии:

1. На самом деле onCheck возвращает массив (результат sql-запроса). И мне нужно получить элементы массива с помощью {{ }}. Как я могу это сделать?

2. надеюсь, вы поможете

3. если вы можете поделиться своим onCheck кодом, я могу вам помочь