codeigniter - 表单不返回数据

时间:2014-01-31 19:06:05

标签: php forms codeigniter post

我正在尝试使用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数据吗?为什么这有关系?
感谢

3 个答案:

答案 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">