Ajax |角度控制器,
$scope.counting=function(id){
if(id){
$.ajax({
type: "POST",
url: baseUrl()+'/index.php/site/count',
data:{"id":id},
dataType: "json",
contentType: 'application/json',
success: function(data) {
console.log(data);
},
error: function() {
console.log('no response');
}
});
}
输出 没有回应
Codeigniter控制器,
public function count()
{
$input_data = json_decode(trim(file_get_contents('php://input')), true);
print_r($input_data); die;
}
我收到了帖子数据,但我无法收到任何回复。 问题似乎出现在json_decode部分,但看起来很好。
查看,
<li ng-click="counting(<?php echo $value->id;?>);" class="count"><button type="submit" name="count"> <i class="fa fa-heart-o"></i></button></li>
答案 0 :(得分:0)
从您的控制器使用@task = Task.new
以json
格式将响应发送回js。由于json_sncode()
在print_r()
中打印数组,php
将无法识别它。但您可以在js
的{{1}}标签中看到数组作为回复。
network
答案 1 :(得分:0)
我找到了一个更合理的解决方案。
我删除了视图中的按钮标记
<li ng-click="counting(<?php echo $value->id;?>);" class="count"> <i class="fa fa-heart-o"></i></li>
这样做,我得到了回应。
我想,'type = submit'将按钮值直接发布到codeigniter控制器,并且'li'也调用了ajax函数,该函数也将'id'发布到控制器。
但是,由于'按钮类型提交'被重定向到功能计数(或者说是一个新页面),响应无法显示,因为响应来自之前的控制器功能(或者我应该说先前页)。即使删除'type = submit'也适用于这种情况。