我正在尝试使用GET
和codeigniter
向angularJS
方法发送参数,但似乎我的函数没有收到参数。这是代码:
AngularJS:
$http.get("../controller/get_method?id=13").then(function(response) {
$scope.data= response.data;
//console.log(response.data);
}, function myError(response) {
console.log(response);
});
笨
public function get_method()
{
header ( 'Content-Type: application/json; charset=utf-8' );
$id= isset ($_GET ['id']) ? $_GET ['id'] : null;
$sql = "select * from table";
if ($id) $sql." where table.id=".$id;
$query = $this->db->query($sql);
echo json_encode( $query->result_array() );
}
我做错了什么?
答案 0 :(得分:1)
在Codeigniter控制器功能中获取数据的方法有两种(如果您按照自己的方式做事,则为3)。
首先:
function some_controller_function($id = null) { var_dump($id) }
第二 - 除非正确处理,否则仅适用于非路由方法:
function some_controller_function() {
$id = $this->input->get('id');
if (is_null($id)) {
// handle error
}
}
此外,请不要直接将您的原始$_GET
数据直接输入您的查询字符串。这只是为您打开SQL注入。使用自动转义数据的query-builder。或者通过$id = $this->db->escape_str($this->input->get('id'));
查询构建器代码:
$query = $this->db->get_where('table', array('id' => $id);
return $query->result_array();
如果上述功能的 none 有效,那么您必须在发布的信息范围之外做其他错误。完成典型的调试路径。