表单操作无法获取数据

时间:2016-01-26 18:31:02

标签: php html codeigniter

我无法获取复选框字段的值。这是我的代码的结构

function search_filter($query) {
  if ( !is_admin() && $query->is_main_query() ) {
    if ($query->is_search) {
      $query->set('posts_per_page', 6);
    }
  }
}
add_action('pre_get_posts', 'search_filter');

在控制器中

<form action="<?php echo base_url()?>Home/dashboard" method="post">
<button class="btn btn-default" type="submit" name="delete" onclick="cliked1(event)"  
style="margin-left:2px;background-color:blue;color:white;">Delete Item</button>
 <td><input  class="checkbox"  type="checkbox"name="cb" value="1"> 1 </td>
</form>

我在其他文件中重新创建了它的过程并且它正常工作

else if(isset($_POST['delete'])) {
  $cb = $this->input->post('cb');
  echo $cb;
}

在控制器

<form action ="<?php echo base_url()?>Shop/test" method="POST">
  <button class='btn btn-danger btn-xs' type="submit" name="delete" value="delete"><span class="fa fa-times"></span> delete</button>
  <input type="checkbox" name="cb[]" value="lol">
  <br>
  <input type="checkbox" name="cb[]" value="yeaa"> 
</form>

我应用这个过程就像这样

    function test()
    {
        $this->load->view('test');
        if(isset($_POST['delete']))
        {
            $id = implode('^',$this->input->post('cb'));
            print_r($id);
        }
    }

问题是提交按钮不起作用。

1 个答案:

答案 0 :(得分:1)

如果选中复选框,则在未选中复选框时,您将无法在$_POST中设置复选框。因此,要获取复选框的值,您需要执行以下操作:

if (isset($_POST["cb"])) {
  // Checkbox is checked.
  $cb = $_POST["cb"];
} else {
  // Checkbox is not checked.
}

请不要查看type="submit"

来自resources之一:

  

在大多数情况下,这会起作用,但在某些情况下它会胜出。为了确定何时这种情况失败,我们必须考虑提交表格的不同方式。

     

提交表单有两种方式,一种是单击提交按钮,另一种是点击返回,其中将调用提交按钮。当您按下返回按钮(大多数人这样做),使用Internet Explorer(最常用的浏览器)和提交按钮没有焦点时,会出现问题。这将提交表单,但不会发送 submit变量,这意味着我们上面使用的脚本将失败。