将表单插入数据库


insert form to database

我有程序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();

这将显示上次运行的查询。