将值从视图页面传递到codeigniter中的控制器页面

时间:2015-12-17 05:23:38

标签: php database html5 forms codeigniter

我试图通过php CodeIgniter将数据插入数据库,并在提交按钮期间在同一页面中显示结果。下面是我的代码。问题是我没有从视图页面获取任何值,我检查print_r导致一个空数组。请帮忙。查看页面

<div class="container col-lg-4">
<?php echo validation_errors(); ?>
<?php echo form_open('Welcome/gallery1'); ?>                         
<div class="form-group has-info">
<input type="hidden" name="id" value="">
<br>
<label class="control-label col-lg-6" for="inputSuccess">Offer title
</label>
<input type="text" class="form-control col-lg-6" name="offered" value="<?php if(isset($_POST['offered'])) echo $_POST['offered'];  ?>" id="offered">
<label class="control-label col-lg-6" for="inputSuccess">Offer Description
</label>
<textarea id="description" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];  ?>" class="form-control col-lg-6"  rows="3" >
</textarea>
<br/>
<div>
<button type="submit" class="btn btn-primary col-lg-4">
<span>SUBMIT
</span>
</button>  
</div> 
</div>
<?php echo form_close(); ?>
</div>

控制器页面

public function gallery1()
{                    
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->model('Login_set'); 
$form_data = $this->input->post();
$data1 = array('offer_id'=>$this->input->post('id'),
'hotel_id'=>1,
'offers_name'=>$this->input->post('offered'),
'offers_description'=>$this->input->post('description')
);
print_r($data1);
$this->Login_set->add_offer($data1);    
$page_id =$this->uri->segment(3);
$data['h']=$this->Login_set->select(); 
$this->load->view('App_stay/pages/hotel1_galery.php',$data); 
}

模型页面

<?php
class Login_set extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->database();
}
public function add_offer($data1)
{
$this->load->database();
$this->load->helper('url');
if($this->db->insert('offer_hotel1',$data1))
return true;
else
return false;
}
}
?>

1 个答案:

答案 0 :(得分:1)

您不需要在HTML输入中保留任何值。只需这样做:

<div class="container col-lg-4">
<?php echo validation_errors(); ?>
<?php echo form_open('Welcome/gallery1'); ?>
<div class="form-group has-info">
    <input type="hidden" name="id" value="">
    <br>
    <label class="control-label col-lg-6" for="inputSuccess">Offer title</label>
    <input type="text" class="form-control col-lg-6" name="offered" id="offered">
    <label class="control-label col-lg-6" for="inputSuccess">Offer Description</label>
    <textarea id="description" name="description" class="form-control col-lg-6"  rows="3" ></textarea>
    <br/>
    <div>
    <button type="submit" class="btn btn-primary col-lg-4">
    <span>SUBMIT</span>
    </button>
    </div>
</div>
<?php echo form_close(); ?>

public function gallery1()
{
    $this->load->helper('url');
    $this->load->helper('form');
    $this->load->library('form_validation');
    $this->load->model('Login_set');
    $data1 = array(
        'offer_id'          =>$this->input->post('id'),
        'hotel_id'          =>1,
        'offers_name'       =>$this->input->post('offered'),
        'offers_description'=>$this->input->post('description')
    );
    print_r($data1);
    $this->Login_set->add_offer($data1);
    $page_id =$this->uri->segment(3);
    $data['h']=$this->Login_set->select();
    $this->load->view('App_stay/pages/hotel1_galery.php',$data);
}

这些值将作为$this->input->post('description'); $this->input->post('offered');

转储到Controller中

如果您想查看是否已在此输入中设置了值,则需要从数据库中获取数据而不是value="<?php if(isset($_POST['offered'])) echo $_POST['offered']; ?>"