我创建了一个 codeigniter 应用程序,其中包含一个带有一些 ajax 的页面。我试图向自己证明 ajax 页面实际上是有效的。也就是说,我的页面只有一个部分正在更新,其余部分保持不变。
这是我在控制器中的代码:(索引是在初始页面加载时调用的方法。单击刷新按钮时会调用 index2())
public function index()
{
$this->load->model('locations_model');
$data['clienthistory'] = $this->locations_model->get_locations();
$data['main_content'] = 'dashboard';
$this->load->view('includes/template', $data);
}
public function index2()
{
$this->load->model('locations_model');
$data['clienthistory'] = $this->locations_model->get_locations();
return json_encode($data['clienthistory']);
}
这是我的观点:
<h2>timer test</h2>
<?php echo now();?>
<h2>Latest Client Status</h2>
<?php echo form_open('Dashboard/index');
echo form_submit('submit', 'Refresh Client Data', 'id="clientsubmit" class="btn-primary"');
?>
<div class="row-fluid">
<div class="span12" id="ajaxcontainer">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>IP</th>
<th>Name</th>
<th>Last Updated</th>
</tr>
</thead>
<tbody>
<?php foreach ($clienthistory as $histitem): ?>
<tr>
<td><?php echo $histitem['network'] ?></td>
<td><?php echo $histitem['name'] ?></td>
<td><?php echo $histitem['lastupdated'] ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
<?php echo form_close(); ?>
<script type="text/javascript">
$('#clientsubmit').click(function() {
$.ajax({
url:"<?php echo site_url('Dashboard/index2'); ?>",
type: 'POST',
dataType: 'html'
success: function(returnDataFromController) {
$('#ajaxcontainer').html(returnDataFromController)
}
});
return false;
});
</script>
这个想法是在页面上显示当前时间,在我的 ajax 调用不应该更新的区域中。但是当我点击我的刷新按钮时,除了更新表格数据之外,时间也在更新。我不确定我理解为什么会这样。任何帮助,将不胜感激。提前为补救问题道歉 - 对 codeigniter 和 ajax 来说是新手。谢谢。