【发布时间】:2016-04-22 05:05:16
【问题描述】:
我有一个非常奇怪的问题,我似乎无法弄清楚或理解。所以基本上我有一个获取通过 Codeigniter URI 传递的 ID,让它填充一个隐藏的表单,然后提交。但是,当我将表单提交为隐藏时,它会返回说数据为 NULL。我已经尝试并将其更改为 form_input 并且它工作正常。谁能帮助我或向我解释为什么会这样?
我尝试了以下解决方案。
网址
http://localhost/list/players/add/1/
我希望 URI 3 ('1') 传递到表单并提交。
解决方案 1 - 让 URI 直接传递给数据数组
控制器
function add() {
if($this->form_validation->run() == FALSE) {
$data['view_file'] = 'add';
$this->load->module('template');
$this->template->cmslayout($data);
} else {
$league_id = $this->uri->segment(3);
$data = array(
'leagues_id' => $league_id,
);
if($this->_insert($data)){
return $query;
}
redirect ('/players/');
}
}
解决方案 2 - 获取 URI 并填写隐藏表单
控制器
function add() {
$league_id = $this->uri->segment(3);
$this->load->module('leagues');
$data['leagues_list'] = $this->leagues->get_where($league_id);
if($this->form_validation->run() == FALSE) {
$data['view_file'] = 'add';
$this->load->module('template');
$this->template->cmslayout($data);
} else {
$data = array(
'leagues_id' => $this->input->post('leagues_id'),
);
if($this->_insert($data)){
return $query;
}
redirect ('/players/');
}
}
查看
<?php
echo form_open('players/add/');
?>
<?php
echo "<br>";
echo "<br>";
echo "League Name";
echo "<br>";
foreach ($leagues_list->result() as $row) {
$league_id = $row->id;
$league_name = $row->league_name;
echo $league_name;
$data = array( 'name' => 'leagues_id',
'value' => $league_id,
);
echo form_hidden($data);
}
echo "<br>";
echo "<br>";
$data = array( 'value' => 'Set Player',
'name' => 'submit',
'class' => 'submit-btn',
);
echo form_submit($data);
echo form_close();
?>
在这两种情况下,提交时都会返回一个错误,指出leagues_id 为 NULL。现在我已经尝试在解决方案 2 中将“form_hidden”更改为“form_input”,然后直接点击提交,效果很好。
谁能帮助我或告诉我为什么会这样?
非常感谢。
【问题讨论】:
标签: php mysql forms codeigniter