尝试使用codeigniter将表单值插入数据库中,但没有发生任何变化。我的表单是comment_form.php就像,
<?php echo validation_errors(); ?>
<?php echo form_open('news/comment_form'); ?>
Name<input type="text" name="comment_name"></input><br />
Email<input type="text" name="comment_email"></input><br />
Comment<input type="text" name="comment_body"></input><br />
<input type="submit" name="submit" value="Comment it" ></input>
</form>
这是我的控制器comments.php
class Comments extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('comment_model');
}
public function create_comment()
{
$this->load->helper('form');
$this->load->library('form_validation');
//$data['title'] = 'Create a news item';
$this->form_validation->set_rules('comment_name', 'comment_name', 'required');
$this->form_validation->set_rules('comment_email', 'comment_email', 'required');
$this->form_validation->set_rules('comment_body', 'comment_body', 'required');
if ($this->form_validation->run() === FALSE) {
$this->load->view('templates/header', $data);
$this->load->view('news/comment_form');
$this->load->view('templates/footer');
} else {
$this->news_model->set_comment();
$this->load->view('news/success');
}
}
}
这是我的模型comment_model.php
class Comment_model extends CI_Model
{
public function __construct()
{
$this->load->database();
}
public function set_comment()
{
//$this->load->helper('url');
//$slug = url_title($this->input->post('title'), 'dash', TRUE);
$datac = array(
'comment_name' => $this->input->post('comment_name'),
'comment_email' => $this->input->post('comment_email'),
'comment_body' => $this->input->post('comment_body')
);
return $this->db->insert('comments', $datac);
}
}
问题是,每当我提交表单时,它都不会返回任何内容,就像什么都没有发生。请帮助。
在您的comment_form.php中进行更改
echo form_open('news/create_comment');
到
echo form_open('comments/create_comment');
为什么?因为您给form_open()的第一个参数是action参数。它将打开一个表单标签,如<form action="bla">
。而且news / create_comment不是您要调用的正确页面。您的控制器被命名comments
,这就是您放的原因comments/create_comment
。
在您的comment.php中更改
$this->news_model->set_comment();
到
$this->comment_model->set_comment();
为什么?只是简单地指向错误的模型。也许是复制粘贴错误?
在您的comment_model.php中删除
$this->load->database();
并将其加载到您的config.php中(在librarys数组中,添加“ database”)。
为什么?恕我直言,这是更合适的解决方案。您可能会经常使用数据库,那么为什么每次都要加载该数据库?
如果您仍然遇到问题,那么我们需要更多信息。到底什么是行不通的。为我们做一些调试。在调用$this->news_model->set_comment()
写var_dump($this->db->last_query());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句