2014-05-09 59 views
0

我正在CodeIgniter中创建一个网站,并且需要将这些信息插入到数据库中,但是每次将信息输入到我的表单中并提交时,页面就会像刷新一样已提交但没有任何内容进入数据库。无法使用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

尝试从模型取出exit

function addjob($jobtype,$jobinfo) 
{ 
    $newjob=array("jobtype"=>$jobtype,"jobinfo"=>$jobinfo); 
    return $this->db->insert('clientjobs', $newjob); 
} 

这不是必需的,可能会破坏数据库类,并暂停应用程序的任何执行。

0

这是你的问题:

echo form_open('client/insertjob'); 

如果你看一下您浏览器的HTML代码,你会看到这样的事情:其他

<form action="client/insertjob"> 

有可能会是一大堆form标签中的属性 - 它们对于这个答案并不重要。

action属性告诉浏览器点击提交后要去哪里。它在哪里?回到insertjob方法。但它需要去你的addingjob方法 - 这是数据库更新实际上正在完成的地方。因此,改变form_open呼吁:

echo form_open('client/addingjob'); 
0

当我看到你正在使用的发布2层控制器的功能,第1页第2页。你对形式的错误打开你应该张贴您的数据addingjob不insertjob。

echo form_open('client/addingjob'); 

将解决您的问题,但我强烈建议您使用一个控制器进行表单提交。下面的代码将发送到相同的网址。你可以在它上面添加一些属性。

<?php 
$attributes = array('class' => 'form-horizontal'); 
echo form_open($this->uri->uri_string(),$attributes); ?>