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

<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;
}
}
?>

最佳答案

您不需要在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');转储到控制器中。
如果您想查看是否已经在此输入中设置了值,则需要从数据库中获取数据,而不需要value="<?php if(isset($_POST['offered'])) echo $_POST['offered']; ?>"

关于php - 将值从 View 页面传递到Codeigniter中的 Controller 页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34327186/

10-16 13:06
查看更多