2014-05-09 86 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); ?>