public function ajax($url = null, $total = 0, $params = []) { $is_api = $this->get('is_api_request'); if ($is_api) { return false; } if (is_array($total)) { $params = $total; $total = 0; } $is_ajax = $this->get('is_ajax_request'); $ajax = []; $ajax['enable'] = $is_ajax === true ? false : true; $ajax['disable'] = $ajax['enable']; $form = []; $url = empty($url) ? Utility::currentUrl() : $this->link($url); $method = strtoupper($params['method']); $method = $method && in_array($method, ['POST', 'GET']) ? $method : 'POST'; unset($params['method']); $start = '<form id="ajax_form" method="' . $method . '" action="' . $url . '">'; $end = '</form>'; $start .= '<input type="hidden" id="page" name="page" value="1" />'; $start .= '<input type="hidden" id="total" name="total" value="' . $total . '" />'; foreach ($params as $k => $v) { $mid .= '<input type="hidden" name="' . $k . '" value="' . $v . '" />'; } $ajax['form'] = $start . $mid . $end; $ajax['start'] = $start . $mid; $ajax['end'] = $end; $class = 'render-' . uniqid(); $params['class'] = '.' . $class; $start = '<form role="render" class="' . $class . '" method="' . $method . '" action="' . $url . '">'; $form['start'] = $start . $mid; $form['params'] = $mid; $form['end'] = $end; $form['class'] = $params['class']; $ajax['fm'] = $form; $params['total'] = $total; $params['url'] = $url; $ajax['params'] = $params; $this->assign('ajax', $ajax); }