在表单提交后使用JS或PHP重新加载当前页面/ URL

时间:2011-11-29 13:49:47

标签: php javascript jquery codeigniter

免责声明:我是网络开发的新手。

我正在使用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 个答案:

答案 0 :(得分:2)

你应该像Jan所说的那样重新加载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.   
  3. data - 随请求一起发送到服务器的地图或字符串。
  4.   
  5. success(data, textStatus, jqXHR) - 请求成功时执行的回调函数。
  6.   
  7. dataType - 服务器所需的数据类型。默认值:智能猜测(xml,json,脚本或html)。
  8.   

答案 1 :(得分:1)

尝试

location.reload();

而不是返回;