Видеокурс October CMS
В этом видео мы научимся работать с Ajax запросами средствами October CMS.
Для того чтобы мы имели такую возможность нам на странице потребуется подключить библиотеку CMS для работы с Ajax.
Делается это путем добавление строки:
1 | {% framework %} |
Итого наш лайаут будет иметь вид:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <!DOCTYPE html> <html> <head> <title>October CMS - test layout</title> <link href="{{ [ 'assets/css/theme.css' ]|theme }} " rel=" stylesheet"> </head> <body> <header class = "container" > <h1>{{ this.page.title }} <small>Page header</small></h1> </header> <section> <div class = "container" > {% page %} </div> </section> <footer> <hr> <p>Footer</p> </footer> <script src="{{ [ 'assets/javascript/jquery.js' ]|theme }}"></script> {% framework %} </body> </html> |
Для изучения Ajax возможностей October CMS. Создадим приложение Калькулятор.
Создадим новую страницу и назовем её calc . URL для нее будет следующим /calc
Запишем этой странице следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <h3>AJAX Калькулятор</h3> <form class = "form-inline" data-request= "onTest" data-request-update= "calcres: '#result'" > <input type= "text" name= "value1" value= "" class = "form-control" style= "width:100px;" > <select name= "operation" class = "form-control" style= "width:70px" > <option>+</option> <option>-</option> <option>*</option> <option>/</option> </select> <input type= "text" name= "value2" value= "" class = "form-control" style=" width:100px;"> <button type= "submit" class = "btn btn-primary" >=</button> </form> <h3>Result:</h3> <div id= "result" > {% partial 'calcres' %} </div> |
Теперь разберем подробнее наш код.
1 | data-request= "onTest" |
Задаем имя Ajax-функции которая будет проводить необходимые вычисления. То есть это то куда мы будем обращаться чтобы получить необходимые данные. С помощью формы мы будем передавать значения в функцию onTest и соответственно будем принимать значения из этой функции.
1 | data-request-update= "calcres: '#result'" |
В data-request-update мы указываем какой html-блок будем обновлять данными полученными из data-request.
calcres - имя Partial и #result - id блока
Создадим partial calcres.
1 2 3 4 5 6 7 8 9 | {% if answer %} <span class = "lead" > Res = <span class = "label label-success" >{{ answer }}</span> </span> {% else %} <span class = "text-muted" > Click the "=" button </span> {% endif %} |
Теперь создадим функцию onTest
Переходим на страницу calc и обратим внимание на окно редактирование кода.
По-умолчанию мы находимся на вкладке Markup - здесь мы пишем наш html код.
PHP код мы будем писать на вкладке Code:
PHP код мы будем писать на вкладке Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function onTest(){ $value1 = post( 'value1' ); $value2 = post( 'value2' ); $operation = post( 'operation' ); switch ( $operation ) { case '+' : $this [ 'answer' ] = $value1 + $value2 ; break ; case '-' : $this [ 'answer' ] = $value1 - $value2 ; break ; case '*' : $this [ 'answer' ] = $value1 * $value2 ; break ; case '/' : $this [ 'answer' ] = $value1 / $value2 ; break ; } } |