无法使用CodeIgniter插入数据

时间:2014-05-09 14:44:46

标签: php 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(); 
?>

3 个答案:

答案 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); ?>