我有这段代码:
<a href="#">
<i class="icon-heart" id="icon_heart" value="20"></i>
</a>
var some_value = $("#icon_heart").attr("value");
$('[id=id_heart]').click(function() {
$.ajax({
url: "<?=base_url(); ?>controller/save",
type: "post",
data: { some_value: some_value },
success: function(dat){
alert(dat);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
});
PHP:
function save()
{
$post = $this->input->post();
$some_value = $post['some_value'];
$dtl['some_field'] = $some_value;
$dtl['date_insert'] = date('Y-m-d H:m:s');
$this->db->insert('resep_like',array_filter($dtl));
$this->db->set('is_like', 'is_like+1',FALSE);
$this->db->where('some_field', $some_value);
$this->db->update('some_table');
echo "success";
}
插入和更新查询成功,但AJAX响应返回error: status code 500 internal server error
。为什么会这样?它成功但结果是错误,并且不显示PHP的echo
。如果成功但AJAX response
显示错误
答案 0 :(得分:0)
不知道这是否是最佳答案..
我只需将url: <?=base_url();?>controller/save
更改为url: <?=base_url();?>save.php
我将我的ajax的url
指向放在文档根目录中的单个php文件,而不是再次使用ci控制器来执行插入和更新查询,然后将其工作告知
如果有更好的方法,请告诉我。
由于