【问题标题】:Reload Current Page/URI with JS or PHP after Form Submission提交表单后使用 JS 或 PHP 重新加载当前页面/URI
【发布时间】:2011-11-29 13:49:47
【问题描述】:

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

我正在使用 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;
    });

});

【问题讨论】:

    标签: php javascript jquery codeigniter


    【解决方案1】:

    您应该按照 Jan 所说的 (document.location.reload()) 重新加载 document.location,但只有在请求成功时才应该这样做,因此您的代码将是这样的:

    $.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 — 服务器预期的数据类型。默认值:智能猜测(xml、json、脚本或 html)。

    【讨论】:

    • 这实际上更接近最终所需的正确答案(我在应得的地方给予信任)。非常感谢!
    【解决方案2】:

    试试

    location.reload();
    

    返回;

    【讨论】:

    • 这就是我最终做的,而且效果很好。 location.reload(); return false; location.reload(); 重新加载了当前页面,return false; 避免了来自控制器的重定向。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多