免责声明:我是网络开发的新手。
我正在使用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;
});
});
答案 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] )
url
- 包含请求发送到的URL的字符串。data
- 随请求一起发送到服务器的地图或字符串。success(data, textStatus, jqXHR)
- 请求成功时执行的回调函数。- 醇>
dataType
- 服务器所需的数据类型。默认值:智能猜测(xml,json,脚本或html)。
答案 1 :(得分:1)
尝试
location.reload();
而不是返回;