Ajax 和 codeigniter 框架问题
Posted
技术标签:
【中文标题】Ajax 和 codeigniter 框架问题【英文标题】:Ajax and codeigniter framework issues 【发布时间】:2018-07-20 09:13:53 【问题描述】:我在使用 AJAX 和 CodeIgniter 时遇到问题,我想获取数据库中的用户总数,但没有找到数据。
我的控制器:
public function TotalUsers()
if($this->input->post("action")=='GetTotalUsers')
$this->load->model("usersmodel");
$totalcount=$this->usermodel->GetTotalUserCount();
echo $totalcount;
我的模特:
public function GetTotalUserCount()
$query = $this->db->get("users");
return $query->num_rows();
我的 html 和 jquery:
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-yellow">
<div class="inner">
<h3 id="totaluser"></h3>
<p>Total Users</p>
</div>
<div class="icon">
<i class="ion ion-person-add"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
<script>
$(document).ready(function ()
GetTotalUsersCount();
function GetTotalUsersCount()
var action='GetTotalUsers';
$.ajax(
url:"<?php echo base_url()?>Users/TotalUsers",
method:"post",
data:action:action,
success:function (data)
$("#totaluser").html(data)
)
)
</script>
【问题讨论】:
先忘记 AJAX。当您手动浏览到/Users/TotalUsers
时会发生什么?
没有空白页
所以你的 AJAX 不是问题。首先修复您的控制器操作。
那么附加的控制器错误是什么
检查您的error_log
。空白页通常表示 HTTP 500,这意味着服务器端出现问题。
【参考方案1】:
我认为您可能会在控制器期望它序列化时以 JSON 编码发送它,尽管我不确定。
在$this->input->post("action")
上运行var_dump()
。
如果这没有给出GetTotalUsers
,那么这就是你的问题。您需要将控制器设置为接受原始发布数据并解码为 json,序列化数据而不是使用 javascript 对象 (JSON),或者如果可能,只需删除有条件的操作,因为目前它看起来没有用显示。
【讨论】:
【参考方案2】:我怀疑url:
没有评估到正确的值。还有一些语法错误(缺少分号)。试试这个 JavaScript。使用浏览器的“开发者工具”检查标题以查看帖子“去向”的位置以及发布的“动作”。
$(document).ready(function ()
GetTotalUsersCount();
function GetTotalUsersCount()
$.ajax(
url: '<?php echo base_url("Users/TotalUsers"); ?>',
method: "post",
data: action: 'GetTotalUsers',
success: function (data)
$("#totaluser").text(data);
);
);
我很好奇你为什么使用 ajax 而不是简单地确定总计数并将其传递给视图的初始加载?
【讨论】:
【参考方案3】:1.使用 Ctrl+Shift+I (或导航到当前页面控制>开发人员> 开发人员工具)或(使用右键单击您的页面,然后选择检查 元素)
2.转到“网络”标签
3.在“名称路径”列中找到您的ajax请求
4.点击具体的ajax链接
【讨论】:
以上是关于Ajax 和 codeigniter 框架问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在codeigniter中使用ajax在mysql数据库中插入数据?
在使用codeigniter并从curl获取数据时在ajax中添加href