我试图通过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;
}
}
?>
答案 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');
如果您想查看是否已在此输入中设置了值,则需要从数据库中获取数据而不是value="<?php if(isset($_POST['offered'])) echo $_POST['offered']; ?>"