将表单插入数据库

时间:2013-12-11 09:02:46

标签: php mysql codeigniter

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

当我点击提交数据时不插入数据库。你可以帮我解决这个代码问题吗?感谢。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

从控制器调用模型。并在模型中写下以下代码。

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

在此数组键中是数据库列名。

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

答案 2 :(得分:0)

您需要在表单标记中定义操作属性,您将在其中提供控制器名称和方法名称,如此

<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();

这将显示上次查询运行。

相关问题