我正在尝试通过CodeIgniter刷新页面,但我似乎无法让它工作。
基本上,我们在页面上有一个作业列表,用户可以选择过滤所述作业。
因此,用户将选中复选框,然后单击“保存”以根据用户ID将其选择保存到数据库中。
一旦他们保存了他们的选择,我显然需要刷新数据,但我已经尝试了很多东西,这似乎根本不起作用。我假设我的重定向位于错误的位置,目前在控制器中。
我尝试了以下内容:
$this->load->helper('url');
redirect('dashboard', 'refresh');
但没有任何反应。
我在控制器功能中有以上重定向:
public function save_filters() {
if (isset($_POST)){
$filters = $_POST['client_ids'];
}
$this->load->model('dashboard_model');
$this->dashboard_model->update_dashboard_filters($filters);
$this->load->helper('url');
redirect('dashboard', 'refresh');
}
我把它放在了错误的地方吗?
我没有从萤火虫那里得到任何错误或警告?
表格:
<form id="filters_form">
<table>
<tr>
<td>
<label for="GAB Robins">GAB Robins </label><input type="checkbox" name="client_ids[]" value="4">
</td>
<td>
<label for="Cunningham Lindsay">Cunningham Lindsay </label><input type="checkbox" name="client_ids[]" value="5">
</td>
<td>
<label for="Lloyds">Lloyds </label><input type="checkbox" name="client_ids[]" value="7">
</td>
<td>
<label for="Sundry/Private">Sundry/Private </label><input type="checkbox" name="client_ids[]" value="9">
</td>
<td>
<label for="WNS Ltd">WNS Ltd </label><input type="checkbox" name="client_ids[]" value="4441">
</td>
<td>
<label for="Stream">Stream </label><input type="checkbox" name="client_ids[]" value="4493">
</td>
<td>
<label for="Redesign">Redesign </label><input type="checkbox" name="client_ids[]" value="5295">
</td>
</tr>
</table>
<input type="button" value="Save selections" name="save_filters" id="save_filters_button" />
</form>
处理表单的javascript
save_filter: function () {
$.post('/dashboard/save_filters', $('#filters_form').serialize(), function (response) {
if (response.status == 'ok') {
if ($('.ui-success').length == 0) {
$('#page_main').before('<div class="ui-success" style="margin-bottom: 1em; font-weight: bold; border-bottom: 1px solid #ccc; padding: 1em;"><img src="/common/images/icons/accept.png" style="margin-right: 10px;" align="absmiddle" />Filters saved!</div>').fadeIn(1000);
}
}
else {
$(response.errors).each(function (i, item) {
alert(item);
});
}
});
}
答案 0 :(得分:1)
将动作置于表格中
action="<?php base_url(); ?>controller_name/function_name"
和method="post"
示例:
<form id="filters_form" action="<?php base_url(); ?>controller_name/function_name" method="post">
更新:因为您使用的是JS,所以您不会刷新页面。如果要刷新页面,请不要使用JS。
答案 1 :(得分:0)
它无法正常工作,因为您有一个Ajax请求,并且在将数据返回给发出该请求的JavaScript之前,您无法在服务器上进行重定向。
您可以根据您的回复进行重定向