Php 如何在codeigniter上将表单值传递给模型

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> &

我正在使用codeigniter,我想将值从视图传递到模型,但当我插入表时,它总是给出0值

下面是我的表单视图

<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');
    }
}