【发布时间】:2012-06-16 23:53:16
【问题描述】:
我的控制器从数据库模型中获取数据,并将它们发送到视图。在视图中,我执行 foreach 循环来为每个实体绘制 div。每个 div 都有一个表单元素来评价它的实体。
控制器:
function index(){
$data['main_content'] = 'list';
$data['entities'] = $this->database_model->getEntities();
$this->load->view('template', $data);
}
function postRate(){
$rate = array(
'entity_id' => $this->input->post('entity_id'),
'owner_id' => $this->input->post('owner_id'),
'value' => $this->input->post('value')
);
$this->database_model->persistRate($rate);
$this->index();
}
型号:
function getEntities(){
return $this->db->get('entity')->result();
}
function persistRate($rate){
return $this->db->insert('rate', $rate);
}
查看:
<?php foreach($entities as $entity) : ?>
<div class="entity">
<?php echo form_open('entities/postRate/', $attr); ?>
<?php echo form_hidden('entity_id', $entity->id); ?>
<?php echo form_hidden('owner_id', $userid); ?>
<?php echo form_hidden('value', 1); ?>
<?php echo form_submit('submit', '+1'); ?>
<?php echo form_close(); ?>
</div>
<?php endforeach; ?>
在这种情况下,评级后,整个页面将被重新加载,但我只想刷新提交表单的那个 div。我知道 javascript 或 jQuery 可以做到,.. 更新 ..但我不知道他们的逻辑,他们如何知道确切的 div 或实际实体的确切(更新)数据?我应该从数据库中获取它吗?我只是对 js/jquery/ajax 感到困惑。
【问题讨论】:
-
查看 AJAX。用不用 CodeIgniter 没关系,真的跟那个没关系。
-
这里的逻辑是下一个,在视图上提交后,控制器调用模型,返回后,调用索引方法再次获取数据并再次加载页面。正确的?我明白了,但是ajax的逻辑是什么?我没有看到或我不知道。
标签: php forms codeigniter