У меня небольшие проблемы с загрузкой частичных представлений с помощью ajax. Я использовал эту схему:
конфиг / constants.php
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
тогда каждая функция контроллера, которую нужно загрузить с помощью ajax, содержит:
if(IS_AJAX){
//action when AJAX request
$this->load->view("partial_view", $data);
}else{
//action when user open page directly in browser
$this->load->view('full_view',$data);
}
например, когда я на главной странице (http://example.com
) и я хочу использовать Пример контроллера и редактировать действие.
Теперь, если IS_AJAX истина, мой контент загружен правильно, но URL в браузере остается прежним http://example.com
,
иначе, если IS_AJAX имеет значение false, проблем нет. У меня есть URL http://example.com/example/edit/params
Как изменить URL-адрес для запросов AJAX, чтобы они выглядели как стандартные URL-адреса CI?
P.S Я не хочу использовать хеш, если он не нужен: /
Заранее спасибо.
извиняюсь..
Вы можете использовать это, чтобы изменить URL без загрузки страницы:
history.pushState({},null,'http://example-new-url.com');
Других решений пока нет …