【问题标题】:Ajax and codeigniter framework issuesAjax 和 codeigniter 框架问题
【发布时间】: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,这意味着服务器端出现问题。

标签: php jquery ajax codeigniter


【解决方案1】:

我认为您可能会在控制器期望它序列化时以 JSON 编码发送它,尽管我不确定。

$this-&gt;input-&gt;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链接

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 2011-11-12
        • 2011-11-22
        • 1970-01-01
        • 1970-01-01
        • 2012-01-07
        • 2011-11-13
        相关资源
        最近更新 更多