免责声明:我是web开发新手。
我正在使用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>
这是运行形式:
$(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;
});
});
你应该重新加载文档。位置,如Jan所说(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
-期望从服务器获得的数据类型。默认值:Intelligent Guess (xml、json、script或html)。
Try
location.reload();