【问题标题】:Using Jquery/Ajax to display a result of codeigniter function in view使用 Jquery/Ajax 在视图中显示 codeigniter 函数的结果
【发布时间】:2017-11-08 08:26:57
【问题描述】:

我目前正在使用 codeigniter 处理一个项目。我有一个名为 dashboard.php 的视图页面。在仪表板中,我的任务是显示图表。从 dashbord.php 我正在调用控制器函数 stat()。我使用 Morris.js 创建了图表,该图表位于 stat.php

控制器函数 stat()

  public function stat()
  {
    $this->load->view('template/admin_header', $data);
    $this->load->view('merchant/stat', $data);
    $this->load->view('template/footer', $data);
  } 

查看页面 stat.php

<script>
$(function() {
     Morris.Area({
        element: 'morris-area-chart-scan-payment',
        data: [
        {
            period: 'Mon',
            spoint: 2666,
            mpayment: null,
        }, 
        {
            period: 'Tue',
            spoint: 2778,
            mpayment: 1350,
        }, 
        {
            period: 'Wed',
            spoint: 4912,
            mpayment: 1969,
        } 
      ], 

      xkey: 'period',
     ykeys: ['spoint', 'mpayment'],
     labels: ['Scan Point', 'Payment'],
     parseTime: false,
     pointSize: 2,
     hideHover: 'auto',
     resize: true
     });
  });
 </script>

 <div id="morris-area-chart-scan-payment"></div>

dashboard.php 查看页面

<div id="div1"></div>

我在视图页面dashboard.php中创建了一个div标签。如何使用 JQuery/Ajax 在 dashboard.phpstat.php 中显示图表?

【问题讨论】:

  • 谁能帮我解决这个问题?
  • dashboard.php 中 stat.php 中的图形是什么意思?
  • 图形位于一个单独的视图文件 stat.php 中。我想要的是使用 Jquery 和 Ajax 在仪表板中显示图表。
  • 我认为这是不可能的(未测试),因为图表有很多与 jquery 相关的影响,所以这不是好方法。你必须从 dashbord.php 调用 ajax

标签: javascript php jquery ajax codeigniter


【解决方案1】:

Codeigniter 应该将 morris 数据的 array 返回为 URL 上的 json,这将在下面的 ajax 中请求

$(function() {
  var morris_area = Morris.Area({
    element: 'morris-area-chart-scan-payment',
    data: [
      {
        period: 'Mon',
        spoint: 2666,
        mpayment: null,
      }, 
      {
        period: 'Tue',
        spoint: 2778,
        mpayment: 1350,
      }, 
      {
        period: 'Wed',
        spoint: 4912,
        mpayment: 1969,
      } 
    ], 
    xkey: 'period',
    ykeys: ['spoint', 'mpayment'],
    labels: ['Scan Point', 'Payment'],
    parseTime: false,
    pointSize: 2,
    hideHover: 'auto',
    resize: true
  });

  $('.some-button').on('click', function loadMorrisData() {
    $.ajax({
      url: "http://your-test-url.something",
      success: function(data) {
        morris_area.setData(data);
      }
    });
  });
});

【讨论】:

  • 我有许多图表要显示在仪表板中。因此,最好将所有图表都放在不同的文件中。有没有办法使用 Jquery 和 Ajax 调用这些文件?
  • 我认为你应该在你的 Codeigniter 项目中添加一个AjaxController,这样你就可以为不同的图表添加不同的方法(使用不同的路由)
【解决方案2】:

您的回调网址在哪里?

您必须设置一个回调 url 来发送数据并接收值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2015-07-13
    • 2018-09-26
    • 1970-01-01
    • 2019-07-19
    • 2012-12-18
    • 1970-01-01
    相关资源
    最近更新 更多