我有程序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);
}
}
当我点击提交数据不插入数据库。你能帮我解决这个代码问题吗?谢谢
您的表单没有操作,因此可能不会转到您想要的函数。(/controller/function)
<form target="paypal" method="post">
此外,不要使用按钮提交表单,而是尝试使用<input type="submit"...
使用<button>
,在某些浏览器中,您需要"提交",而在其他浏览器中,则需要"立即订购"。
如果以上方法不起作用,请检查您的SQL。
附带说明一下,CodeIgniter有一个form
助手和一个form_validation
库,如果您已经在使用CodeIgnitr,这两个库非常有用。这不会解决你的问题,但我觉得我应该指出这一点。
参见:
http://ellislab.com/codeigniter%20/user-guide/librarys/form_validation.html
http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html
从控制器调用模型。并在模型中编写以下代码。
$data = array(
'handphone' => $this->input->post('handphone'),
'alamat' => $this->input->post('alamat'),
)
在这个数组中,关键字是数据库列名。
$this->db->insert(yourtablname, $data);
$insert_id = $this->db->insert_id();
您需要在表单标签中定义动作属性,在其中您将提供控制器名称和方法名称,如
<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();
这将显示上次运行的查询。