我在CodeIgniter中创建一个网站,对于其中一个页面,我需要将信息插入到数据库中,但是每次我将信息输入到我的表单并提交时,页面都会刷新,就像它已经提交但没有任何内容进入数据库。
控制器:
public function insertjob()
{
$this->load->helper('form');
$data['title']="Add a new job";
$this->load->view("insertjob", $data);
}
public function addingjob()
{
$jobtype=$this->input->post('jobtype');
$jobinfo=$this->input->post('jobinfo');
$this->load->model("cmodel");
if($this->cmodel->addjob($jobtype, $jobinfo)){
$data['msg']="New job addition successful";
}else{
$data['msg']="There was an error please try again";
}
$this->load->view("confirmation",$data);
型号:
function addjob($jobtype,$jobinfo)
{
$newjob=array("jobtype"=>$jobtype,"jobinfo"=>$jobinfo);
return $this->db->insert('clientjobs', $newjob); exit;
查看:
</p>
<?php
echo form_open('client/insertjob');
echo form_label('Job:', 'Job');
echo form_input('jobtype');
echo form_label('Job information:', 'Job information');
echo form_input('jobinfo');
echo form_submit('Add job', 'Submit Post!');
echo form_close();
?>
答案 0 :(得分:0)
尝试从模型中删除exit
:
function addjob($jobtype,$jobinfo)
{
$newjob=array("jobtype"=>$jobtype,"jobinfo"=>$jobinfo);
return $this->db->insert('clientjobs', $newjob);
}
它不是必需的,可能会破坏数据库类,并停止应用程序的任何执行。
答案 1 :(得分:0)
这是你的问题:
echo form_open('client/insertjob');
如果您在浏览器中查看HTML代码,您会看到以下内容:
<form action="client/insertjob">
form
标记中可能还有很多其他属性 - 它们对此答案并不重要。
action
属性告诉浏览器点击提交后要去哪里。它在哪里?回到insertjob
方法。但它需要转到您的addingjob
方法 - 这是实际进行数据库更新的地方。因此,将form_open
调用更改为:
echo form_open('client/addingjob');
答案 2 :(得分:0)
我看到您正在使用2个控制器功能进行发布,第1页到第2页。您打开表单时出错,应将数据发布到添加工作而不是插入工作。
echo form_open('client/addingjob');
将解决您的问题,但我强烈建议您使用一个控制器进行表单提交。下面的代码会将帖子发送到同一个网址。你可以在上面添加一些属性。
<?php
$attributes = array('class' => 'form-horizontal');
echo form_open($this->uri->uri_string(),$attributes); ?>