Перезагрузить текущую страницу / URI с помощью JS или PHP после отправки формы - PullRequest
0 голосов
/ 29 ноября 2011

Отказ от ответственности: я новичок в веб-разработке.

Я создаю календарь событий, используя CodeIgniter, и когда я обновляю событие (используя js), мне нужно перезагрузить точную текущую страницучто я в данный момент.Пока что все, что я смог сделать, это перенаправить на главный контроллер, содержащий класс календаря, что возвращает меня к текущему месяцу.Это отстой, если кто-то редактирует одно событие в другой месяц, отличный от текущего месяца.Любые идеи о том, что использовать / делать?Большое спасибо за вашу помощь!

Контроллер:

if ($this->events->update($data))
            {
                redirect('user/planner');
            }
            else
            {
                show_404();
            }

Просмотр / Форма:

<div class="reveal-modal" id="myModal">
    <?php echo form_open('user/planner/update/'.$event->id, 'id="updateForm"'); ?>

    <h3><?php echo $event->type ?></h3>

    <h4><label for="status">Status</label></h4>
    <p><?php echo form_dropdown('status', $status_options, $event->status ) ?></p>

    <h4><label for="title">Title</label></h4>
    <p><input type="text" id="title" name="title" value="<?php echo $event->title ?>" /></p>

    <h4><label for="content">Content</label></h4>
    <p><textarea rows="7" id="content" name="content"><?php echo $event->content ?></textarea></p>

    <p><?php echo form_submit('submit','Save') ?></p>

    <?php echo form_close(); ?>
</div>

JS Работающая форма:

$(function() {

    $('.event_list li').click( function(e) {
    console.log(this.id);
        $('#update_view_content').load('http://example.com/user/planner/update/'+this.id,function() {
            $('#myModal').reveal();
        });
    });

    $('#updateForm').live('submit', function() {
        var data = $('#updateForm').serialize();
        var url = $(this).attr('action');
        $.post(url, data);
        return;
    });

});

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

вы должны перезагрузить document.location, как сказал Ян (document.location.reload()), но это должно быть сделано только тогда, когда запрос будет успешным, поэтому ваш код будет выглядеть примерно так:

$.post(url, data, function(response) {
    document.location.reload();
});

Руководство jQuery

jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

  1. url - строка, содержащая URL-адрес, на который отправляется запрос.
  2. data - карта или строкаотправляется на сервер вместе с запросом.
  3. success(data, textStatus, jqXHR) - функция обратного вызова, которая выполняется в случае успешного выполнения запроса.
  4. dataType - тип данных, ожидаемых от сервера.По умолчанию: Intelligent Guess (xml, json, script или html).
1 голос
/ 29 ноября 2011

Попробуйте

location.reload();

за возврат;

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