2013-12-11 71 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(); 

这将显示您最后一次查询运行。