CakePHP & JQuery, location.reload иногда не работает - PullRequest
2 голосов
/ 14 июня 2011

Привет, я разрабатываю страницу удаления данных с флажком и кнопкой.После удаления я хотел бы отобразить сообщение о том, что транзакция прошла успешно или нет.В большинстве случаев сообщение отображается правильно, но иногда перезагрузка страницы не происходит, и сообщение не отображается до тех пор, пока не будет загружено вручную.Теперь, если нет уверенности, что страница перезагружена, есть ли другой способ показать сообщение с контроллера?Вот код:

(index.ctp)

<script type="text/javascript">
$(document).ready( function() {
    $("#btn").click(function() {
        var ids = '';
        $('input[type="checkbox"]').each(function(){
            if(this.checked){
                ids = ids.concat(this.id).concat(',');
            }else{
                jAlert("Please choose items to delete");
            }
        });
        if (ids != ''){
            jConfirm('Delete?', 'Confirm',function(r){
                if(r==true){
                    ht = $.ajax({
                        url: 'items/delete/'.concat(ids),
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                    });
                    location.reload(true);
                }

            });
        }
    });
});
</script>

(controller.php # function delete ())

$this->Session->setFlash(__('Deleted!, true));
$this->redirect(array('action'=>'index'));

1 Ответ

1 голос
/ 12 июля 2011

Вспышка сессии CakePHP обычно довольно надежна.

Возможно, ваш браузер недостаточно надежно обновляет location.reload(true). Попробуйте window.location = window.location.href + "?nocache=" + new Date().getTime() очистить кеш вручную и посмотреть, поможет ли это вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...