Html::ajaxForm PHP Метод

ajaxForm() статический публичный Метод

This function provides a mecanism to send html form by ajax
static public ajaxForm ( $selector, $success = "console.log(html);" )
    static function ajaxForm($selector, $success = "console.log(html);")
    {
        echo Html::scriptBlock("\n      \$(document).ready(function() {\n         var lastClicked = null;\n         \$('input[type=submit]').click(function(e) {\n            e = e || event;\n            lastClicked = e.target || e.srcElement;\n         });\n\n         \$('{$selector}').on('submit', function(e) {\n            e.preventDefault();\n            var form = \$(this);\n            var formData = form.closest('form').serializeArray();\n            //push submit button\n            formData.push({\n               name: \$(lastClicked).attr('name'),\n               value: \$(lastClicked).val()\n            });\n\n            \$.ajax({\n               url: form.attr('action'),\n               type: form.attr('method'),\n               data: formData,\n               success: function(html) {\n                  {$success}\n               }\n            });\n         });\n      });\n      ");
    }

Usage Example

Пример #1
0
 /**
  * Display form after selecting date range in planning
  *
  * @since 9.1
  *
  * @param $params (array): must contains this keys :
  *  - begin : start of selection range.
  *       (should be an ISO_8601 date, but could be anything wo can be parsed by strtotime)
  *  - end : end of selection range.
  *       (should be an ISO_8601 date, but could be anything wo can be parsed by strtotime)
  *
  * @return Nothing (display function)
  */
 static function showAddEventSubForm($params = array())
 {
     $rand = mt_rand();
     $params['begin'] = date("Y-m-d H:i:s", strtotime($params['begin']));
     $params['end'] = date("Y-m-d H:i:s", strtotime($params['end']));
     if ($item = getItemForItemtype($params['itemtype'])) {
         $item->showForm('', array('from_planning_ajax' => true, 'begin' => $params['begin'], 'end' => $params['end'], 'formoptions' => "id='ajax_reminder{$rand}'"));
         $callback = "\$('.ui-dialog-content').dialog('close');\n                      \$('#planning').fullCalendar('refetchEvents');\n                      displayAjaxMessageAfterRedirect();";
         Html::ajaxForm("#ajax_reminder{$rand}", $callback);
     }
 }
Html