如何在codeigniter3控制器中获取POST数据

时间:2016-05-12 07:34:04

标签: jquery angularjs codeigniter-3

我正在使用frontend angularjs和beckend codeignitor(3)。 我想在后端控制器中发布数据。 但我无法得到数据。

这是我的HTML -

 <form>

            <fieldset class="form-group">
            <h3>Get data of your table</h3>
                <label for="exampleInputPassword1">Select coloumn value</label>
                <input type="text" class="form-control" ng-model="table.table_column" id="exampleInputPassword1" placeholder="table coloumn values">
                <small class="text-muted">Please enter valid data.</small>
              </fieldset>
              <fieldset class="form-group">
                <label for="exampleInputEmail1">Enter Table Name</label>
                    <input type="text" ng-model="table.table_name" class="form-control" id="exampleInputEmail1" placeholder="Enter Table Name">
                <small class="text-muted">Please enter valid table name.</small>
              </fieldset>

              <fieldset class="form-group">
                <label for="exampleInputPassword1">Where</label>
                <input type="text" class="form-control" ng-model="table.table_where" id="exampleInputPassword1" placeholder="Where">
                <small class="text-muted">Please enter valid value</small>
              </fieldset>
              <fieldset class="form-group">
                <label for="exampleInputPassword1">Value</label>
                <input type="text" class="form-control" ng-model="table.table_value" id="exampleInputPassword1" placeholder="Table Value">
                <small class="text-muted">Please enter valid value</small>
              </fieldset>

              <button type="submit" class="btn btn-primary" ng-click="submitForm(table)">Submit</button>
            </form>
    </div>

这是我的angularjs控制器功能 -

$scope.submitForm = function(table) { 
    $http.post("http://localhost/DatabaseApp/welcome/getData/",table)
        .success(function(response) {$scope.data = response});
}

这是我的codeignitor功能 -

 function getData()
{  

        $table_column   =       $this->input->post('table_column');
        $table_name =           $this->input->post('table_name');
        $table_value    =       $this->input->post('table_value');
        $table_where    =       $this->input->post('table_where');

    print_r($table_name);

}

所以,如果有人可以帮助我,我会感激不尽。非常感谢。

2 个答案:

答案 0 :(得分:0)

当然,您无法使用$ _POST数据获取数据,因为angular $ http将请求数据作为字符串流发送,因此您应该使用:

$data = file_get_content("php//input");
$data = json_decode($data);
  $table_column   =       $data->table_column;
   $table_name =           $data->table_name;
   $table_value    =       $data->table_value;
    $table_where    =       $data->table_where;
祝你好运

答案 1 :(得分:0)

1)您应该在表单标记中添加method="POST"action="~/nameController/nameAction"

2)为您的输入命名。

<form method="POST" action="~/nameController/nameAction">
<input type="text" name="exampleInputPassword1"/>
 <!--You code here-->

</form>