我正在尝试使用ci创建一个包含表单的页面。 当我提交表格时,管制员说我没有提交的数据。 我看不出我的错误在哪里。
以下是观点:
<?php echo validation_errors(); ?>
<?php echo form_open('widgets/search/'.$hardwaremodel.'/'.$objectid.'/'.$name.'/'.$fd); ?>
<div class="form-group">
<label for="search">Last 4 characters of address:</label>
<input type="text" class="form-control" id="searchstring" placeholder="last 4 characters" size="4">
</div>
<button type="submit" class="btn btn-default">Search</button>
<button type="cancel" class="btn btn-default">Cancel</button>
</form>
页面呈现后,表单标记最终会如下所示:
<form action="http://myserver/myciapp/index.php/widgets/search/205406zl/5461/SW-1/SW1net" method="post" accept-charset="utf-8">
控制器:
public function search()
{
$searchstring = $this->input->post(); // form data
var_dump($searchstring);
exit;
}
var_dump
的结果显示:
bool(false)
由于
编辑1
我还没有发布包含表单的整个HTML页面......但是我在页面上显示了作为标题传递的一些字段 - 就在我创建表单之前。希望澄清......
这会影响POST数据吗?为什么这有关系?
感谢
答案 0 :(得分:1)
我建议做的一些事情。首先,如果您要在form_open
标记中包含其他变量,我会将这些变量添加到您的控制器中,并将它们作为URI字符串放在form_open
标记中。如果您要回显验证错误,这将允许表单验证工作。
此外,您应该在input->post()
上调用一个名称来获取特定项目(但您不需要获取所有POST数据)。
控制器:
public function search($hardwaremodel, $objectid, $name, $fd) {
$searchstring = $this->input->post('search_string'); // form data
var_dump($searchstring);
exit;
}
查看:
<?php echo form_open('widgets/search/'.$this->uri->segment(3).'/'.$this->uri->segment(4).'/'.$this->uri->segment(5).'/'.$this->uri->segment(6)); ?>
<div class="form-group">
<label for="search">Last 4 characters of address:</label>
<input type="text" class="form-control" id="search string" name="search_string" placeholder="last 4 characters" size="4">
</div>
答案 1 :(得分:0)
表单元素由name属性引用,该属性在输入字段searchstring
上缺失。
添加:
name="searchstring"
输入字段。
答案 2 :(得分:0)
在此代码中您没有使用name
属性。您使用id。
试试这个
<input type="text" name="searchstring" value="xyz">