Php 如何在codeigniter上将表单值传递给模型
我正在使用codeigniter,我想将值从视图传递到模型,但当我插入表时,它总是给出0值 下面是我的表单视图Php 如何在codeigniter上将表单值传递给模型,php,codeigniter,variables,Php,Codeigniter,Variables,我正在使用codeigniter,我想将值从视图传递到模型,但当我插入表时,它总是给出0值 下面是我的表单视图 <div class="content"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label for="firstname">Firstname</label> &
<div class="content">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label for="firstname">Firstname</label>
<input type="text" class="form-control" id="firstname" name="firstname" >
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="lastname">Lastname</label>
<input type="text" class="form-control" id="lastname" name="lastname" value="<?= set_value('lastname') ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label for="street">Address</label>
<textarea class="form-control" id="address" cols="9" rows="4" name="address"><?= set_value('address') ?></textarea>
</div>
</div>
</div>
<!-- /.row -->
</div>
<?= anchor('welcome/clear_cart', 'Clear Cart', ['class' => 'btn btn-danger']) ?>
<?= anchor(base_url(), 'Continue Shopping', ['class' => 'btn btn-primary']) ?>
<?= anchor('order', 'Check Out', ['class' => 'btn btn-success']) ?>
然后控制器将值传递给“模型订单->流程()
下面是模型_订单功能流程的代码()
所以当我执行insert时,视图中的值不会出现在模型中。
第一个名称变量具有“0”值,也是另一个变量
我怎样才能让它工作?因此,我可以从表单视图中获取值,而不是从模型中获取值,我可以将其插入到表中。为了使
元素显示在$this->input->post()
中,您必须实际提交表单
视图应该更像这样
<form method="post" accept-charset="utf-8" action="<?= base_url('order'); ?>">
<div class="content">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label for="firstname">Firstname</label>
<input type="text" class="form-control" id="firstname" name="firstname" >
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="lastname">Lastname</label>
<input type="text" class="form-control" id="lastname" name="lastname" value="<?= set_value('lastname') ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label for="street">Address</label>
<textarea class="form-control" id="address" cols="9" rows="4" name="address"><?= set_value('address') ?></textarea>
</div>
</div>
</div>
</div>
<?php
echo form_submit('submit', 'Check Out', ['class' => 'btn btn-success']);
echo anchor('welcome/clear_cart', 'Clear Cart', ['class' => 'btn btn-danger']);
echo anchor(base_url(), 'Continue Shopping', ['class' => 'btn btn-primary']);
?>
</form>
作为@DFriend已经说过的内容的补充:
如果要将发布的值传递给模型,则必须将其作为参数添加
型号
function process($data_delivery){
$this->db->insert('deliveryorder',$data_delivery);
}
控制器
public function index()
{
$is_processed = $this->model_orders->process($this->input->post());
if($is_processed){
$this->cart->destroy();
redirect('order/success');
} else {
$this->session->set_flashdata('error','Failed to processed your order, please try again!');
redirect('welcome/cart');
}
}
您需要使用GET或POST方法,或者AJAX调用。从您提供的代码中,我看不出这些代码被使用。
function process($data_delivery){
$this->db->insert('deliveryorder',$data_delivery);
}
public function index()
{
$is_processed = $this->model_orders->process($this->input->post());
if($is_processed){
$this->cart->destroy();
redirect('order/success');
} else {
$this->session->set_flashdata('error','Failed to processed your order, please try again!');
redirect('welcome/cart');
}
}