Codeigniter表单输入无法发布表单数据

时间:2014-07-29 09:23:13

标签: forms codeigniter

这看起来真的很傻但我无法得到一个简单的表格。这是我的代码:

<section class="row-fluid"> <!-- search-by-text -->       
     <div class="span8 offset1"> <!-- search by Name input field-->
            <form class="form-horizontal" role="form">
            <div class="form-group form-group-lg">
              <?php echo form_open('../main_controller/gsd_search'); ?>
              <label class="col-sm-2 control-label" for="formGroupInputLarge">Search by Name</label>
              <div class="col-sm-8">
                <input class="input input-lg input-block-level" type="text" id="search_text" placeholder="Enter name then click 'Search'">
              </div>
             <div class="col-sm-2"><!-- search button -->
                <?php echo form_submit('submit', 'Search by Name', "class='btn btn-large btn-success'"); ?>
                <?php echo form_close(); ?>
              </div> <!-- end search button -->         
                </div>
        </form>
    </div> <!-- end input field and button -->    

当我点击“提交”按钮时,网址

  

?由+姓名提交=搜索+

附在它上面。

任何有关这种愚蠢行为的帮助都会非常令人沮丧。

-G。

3 个答案:

答案 0 :(得分:0)

在调用CodeIgniter表单函数之前,您正在使用HTML添加表单。

<form class="form-horizontal" role="form">
...
</form>

删除HTML表单标记,因为您已使用form_open()

生成它

答案 1 :(得分:0)

 <input class="input input-lg input-block-level" type="text" id="search_text" placeholder="Enter name then click 'Search'">

请在此输入字段中输入名称,如

<input class="input input-lg input-block-level" type="text"  id="search_text" placeholder="Enter name then click 'Search'" name="search">



<pre>and remove html <form> tag because form_open() create form tag automatically</pre>

答案 2 :(得分:0)

尝试一些修正:

1)使用其中一个 <form>..</form> 或Codeigniter的表单帮助 form_open()..form_close() 。由于您使用的是CI,请使用帮助程序。


2)每个输入标记(无论是文本,隐藏,电子邮件,数字等字段)都应该有名称属性


3) form_open() 中的操作 错误。它应该遵循您的基本网址,而不是您控制器的绝对网址


4)查看网址,我可以说您正在发出 GET请求,但form_open()默认情况下会创建 POST请求。因此,我不知道为什么会这样。


修改后的代码:

查看

<section class="row-fluid"> <!-- search-by-text -->       
<div class="span8 offset1"> <!-- search by Name input field-->

   <div class="form-group form-group-lg">
    <?php 
       $attributes = array('class' => 'form-horizontal', 'role' => 'form');
       echo form_open('/main_controller/gsd_search', $attributes); 
    ?>
   <label class="col-sm-2 control-label" for="formGroupInputLarge">Search by Name</label>
          <div class="col-sm-8">
            <input class="input input-lg input-block-level" type="text" id="search_text" placeholder="Enter name then click 'Search'" name="search">
          </div>

         <div class="col-sm-2"><!-- search button -->
            <?php echo form_submit('submit', 'Search by Name', "class='btn btn-large btn-success'"); ?>
            <?php echo form_close(); ?>
          </div> <!-- end search button -->         
    </div>

</div> <!-- end input field and button --> 


控制器 -

class Main_controller extends CI_Controller
{
    public function __construct()
    {
       parent::__construct();
    }

    public function gsd_search()
    {
        // your POST data
    }
}