【发布时间】:2013-12-09 22:03:22
【问题描述】:
我正在使用 codeigniter 和来自 here 的教程。我制作了一个可以正常工作的基本博客工具。但是,要添加新帖子,您必须转到单独的页面“create.php”才能访问表单。我想尝试将表单与将要更新的页面(即“index.php”)放在同一页面上。如果我现在尝试这样做,表单只会刷新并提交数据。
型号
function insert_post($data){
$this->db->insert('posts', $data);
return;
}
当前视图 (admin/create.php)
<?php echo validation_errors(); ?>
<h4>Create A New Post Below</h4>
<form action="" method="post" >
<p>Title:</p>
<input type="text" name="title" size="50"/><br/>
<p>Summary:</p>
<textarea name="summary" rows="2" cols="50"></textarea><br/>
<p>Post Content:</p>
<textarea name="content" rows="6" cols="50"></textarea><br/>
<input type="submit" value="Save" />
<?php echo anchor('admin','Cancel'); ?>
</form>
查看我想要打开的表单 (index.php)
<?php
echo '<p>Welcome '.$username.'! All posts available for edit or deletion is listed below.</p><br/>';
echo anchor('admin/create','Create New Post');
$count = count($post['id']);
for ($i=0;$i<$count;$i++)
{
echo '<div class="postDiv">';
echo '<h4>'.$post['title'][$i];
echo '<p>'.$post['summary'][$i].'</p>';
echo '<p>'.$post['content'][$i].'</p>';
//echo anchor('blog/view/'.$post['id'][$i],' [view]');
echo anchor('admin/edit/'.$post['id'][$i],' [edit]');
echo anchor('admin/delete/'.$post['id'][$i],' [delete]</h4>');
echo '</div>';
}
?>
控制器
function create(){
$data['userId'] = $this->tank_auth->get_user_id();
$data['username'] = $this->tank_auth->get_username();
$this->form_validation->set_rules('title','title','required');
$this->form_validation->set_rules('summary','summary','required');
$this->form_validation->set_rules('content','content','required');
if($this->form_validation->run()==FALSE)
{
$this->load->view('template/admin_html_head',$data);
$this->load->view('admin/create',$data);
$this->load->view('template/html_tail',$data);
} else {
$data = $_POST;
$this->posts->insert_post($data);
redirect('admin');
}
}
当我使用普通的 php 时,这是直截了当的,但使用 codeigniter 我迷失了 MVC 的东西。我知道这可能是一个相当基本的问题,所以请解释您的答案或给我一个链接,该链接将解释我想从中学习需要做什么。我已阅读有关验证的 codeigniter 文档,但我认为这不是我的问题?
【问题讨论】:
标签: php forms codeigniter