2013-12-11 106 views
0

我有程序codeigniter和一個我想插入到數據庫的表單。將表格插入數據庫

代碼視圖:

<form target="paypal" method="post"> 
     <div class="field1"> 
     <div class="field"> 
      <label>Nama</label> 
      <input placeholder="Nama" name="nama" type="text"> 
     </div> 
     <div class="field"> 
      <label>No. HP</label> 
      <input placeholder="No. HP" name="handphone" type="text"> 
     </div> 
     <div class="field"> 
      <label>Alamat</label> 
      <input placeholder="alamat" name="alamat" type="text"> 
     </div> 
     <div class="field"> 
      <label>Jumlah</label> 
      <div class="selectbox"> 
       <select name="jumlah" id=""> 
       <?php for ($i=1; $i <= 20; $i++): ?> 
       <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
       <?php endfor; ?> 
      </select> 
      </div> 

     </div> 
     <button type="submit" name="submit" class="ui teal button order-button">Order now</button> 
     </div> 
    </form> 

代碼控制器

function simpanOrder() 
{ 
    $this->load->model("M_order"); 
    $data['nama'] = $_POST['nama']; 
    $data['handphone'] = $_POST['handphone']; 
    $data['alamat'] = $_POST['alamat']; 
    $data['jumlah'] = $_POST['jumlah']; 


    if($this->input->post('submit')){ 
     $this->M_order->insert($data); 
    } 
} 

當我點擊提交數據未插入到數據庫。所以你可以幫我解決這個代碼問題嗎?謝謝。

+2

嚴......我不確定這可以如何工作沒有任何SQL。 –

+0

@YUNOWORK我不是說這是一個寫得好的問題,因爲它不是,但我認爲函數調用'$ this-> M_order-> insert($ data);'在他的模型中調用插入函數。 – Ryan

+0

他的M_order類中的isert()可能會將它推向數據庫。猜測發生了什麼雖然很難給出正確的答案。您至少需要提供有關M_order類的更多信息。在你真正檢查你是否有提交的帖子之前,你還要設置$ _POST ['nama']等。如果你不想錯誤/通知,你應該在你的if()檢查中設置你的$ data數組。 – Viridis

回答

0

您的表單沒有操作,因此可能不會執行您想要的功能。 (/控制器/功能

<form target="paypal" method="post"> 

而且,而是採用了按鈕提交表單 - 嘗試使用<input type="submit"... 使用<button>,在一些瀏覽器,你就必須「提交」提交的,在其他國家, 「現在下單」。

如果上述不起作用 - 請檢查您的SQL。

作爲一個附註,CodeIgniter有一個form幫手和一個form_validation庫,如果您已經在使用CodeIgniter,它非常有用。這不會解決你的問題,但這只是我想指出的一點。

請參閱:從控制器

http://ellislab.com/codeigniter%20/user-guide/libraries/form_validation.html

http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html

0

呼叫模型。並在模型中寫下以下代碼。

$data = array(
      'handphone' => $this->input->post('handphone'), 
      'alamat' => $this->input->post('alamat'), 
      ) 

在這個數組中,key是數據庫的columnname。

$this->db->insert(yourtablname, $data); 
$insert_id = $this->db->insert_id(); 
+1

我同意Maulik patel。我建議在模型中放置查詢。問候, – leyker

0

您需要的形式標記定義action屬性,您將提供控制器的名稱和方法名這樣

<form action="<?php echo site_url('controllername/simpanOrder')?>" method="post"> 

發佈可以調試這樣

$post = $this->input->post(); 
echo '<pre>'; 
print_r($post); 

你的代碼後然後

if($this->input->post('submit')){ 
    $this->M_order->insert($data); 
} 

最後

echo $this->db->last_query(); 

這將顯示您最後一次查詢運行。