Можно ли каким-либо способом «очистить» то, что в данный момент находится в представлении, вместо необходимости использовать перенаправление?
Я внедряю ajax на своем сайте и заметил, что если я хочу вернуть ответ на запрос ajax только с теми представлениями, которые я хочу показать, я должен использовать перенаправление. Другое дело, если я просто использую
$this->load->view('blah');
он сохранит исходный контент (в данном случае форму) и просто добавит представление поверх этого. Я бы предпочел не использовать перенаправление, так как я хотел бы сохранить URL-адрес одинаковым. Любой способ очистить то, что в настоящее время в представлении без перенаправления или JavaScript?
<script type="text/javascript">
function updateajaxem(){
$(document).on("click", "a.ajaxem", function(e){
e.preventDefault();
var action=$(this).attr('href');
//alert(action);
if(action.indexOf('register')>0){
$("div#logininfo").load("http://localhost/testrun/auth/register/").fadeIn();
}
else if(action.indexOf('password')>0)
{
$("div#logininfo").load("http://localhost/testrun/auth/forgot_password/").fadeIn();
}
}); //end
}
</script>
<script type="text/javascript">
updateajaxem();
//$("a.ajaxem").live("click", function(e){
$(document).on("click","input:submit",function(e){
e.preventDefault();
var formaction=$(this).closest('form').attr('action');
var dataString=$(this).closest('form').serialize();
alert(dataString);
//$("div#logininfo").load(formaction,data);
$.ajax({
type: "POST",
url: formaction,
data: dataString,
// dataType: "json",
success: function(data) {
alert(data);
$("div#logininfo").html(data);
updateajaxem();
}// end of success
});
});
</script>
Для моего codeigniter, в основном это заканчивается
redirect('whereever'); or $this->load->view("blah");
codeigniter - это в основном стандартный код авторизации, только ссылки и формы "ajax-ed". Таким образом, codeigniter, который работает с javascript, просто загружает представление или перенаправляет на другую функцию в контроллере, который загружает представление. ничего особенного. Только то, что только перенаправление будет показывать только что добавленное представление, в то время как простое представление загрузки без перенаправления будет также показывать старое содержимое. Исходя из предположения, высказанного в комментариях, похоже, что после выполнения ajax мне придется обрабатывать его через javascript.
но только перенаправление «очистит» текущее содержимое просмотра и покажет только то, что я хочу, обычно это сообщение об обновлении или простой HTML. Однако перенаправление требует другого изменения URL.
Кроме того, после нескольких щелчков мои события класса "ajaxem" больше не запускаются? Вот почему я сделал функцию updateajaxem () и вызываю ее после каждой перезагрузки ajax, однако это не работает. Я читал, будут ли делегаты работать только для текущих и будущих элементов?