【问题标题】:codeigniter return fetch data from controller to view via Ajax requestcodeigniter 从控制器返回获取数据以通过 Ajax 请求查看
【发布时间】:2017-09-06 10:29:27
【问题描述】:

我加载了我想通过 ajax JSON 请求从数据库中显示获取记录的视图。但它没有显示记录。

这是我的视图代码

<div class="col-md-6" id="hodm_table">
<table class="table table-striped table-hover table-responsive">
  <thead>
    <tr>
      <th>Task Name</th>
      <th>Director</th>
      <th>Duration</th> 
      <th>Status</th>
    </tr>
  </thead>
  <tbody>
     <?php foreach($result as $hodm) { ?>
          <tr>
          <td><?php echo $hodm->t_name;?></td>
          <td><?php echo $hodm->director;?></td>
          <td><?php echo $hodm->duration;?></td>
          <td><?php echo $hodm->status;?></td>
      <?php } ?>
  </tbody>
</table> 
</div>
</div>
<script type='text/javascript' language='javascript'>
$(document).ready(function(){
$.ajax({
url:"<?php echo base_url();?>digital/dashboard/dig_short_hodm_table",
type: 'POST',
dataType: 'JSON',

success:function (data) {
  $('#hodm_table').html(data);
}

});
event.preventDefault();
});
</script>

这是我的模型

public function get_hodm()
     {
          return $this->db->get("hodm");
     }

这是我的控制器

public function dig_short_hodm_table(){

        $data['result']=$this->pojo->get_hodm();

        return json_encode($data);

     }

当我加载我的页面时,它会显示错误

Message: Undefined variable: result

我想在视图加载时从数据库中获取记录并显示在视图表中。

【问题讨论】:

  • 在控制器函数@xr33dx中加载视图页面
  • @Parvez 不工作

标签: php mysql json ajax codeigniter


【解决方案1】:

更新您的模型:

public function get_hodm(){
      return $this->db->get("hodm")->result();
}

你的控制器:

    public function dig_short_hodm_table(){    
    $result_html = '';
    $result_set = $this->pojo->get_hodm();

    foreach($result_set as $result) {
        $result_html .= '
            <tr>
                <td>' . $result->t_name . '</td>
                <td>' . $result->director . '</td>
                <td>' . $result->duration . '</td>
                <td>' . $result->status . '</td>
            </tr>';                   

    }

    echo json_encode($result_html);
}

最后是你的观点:

<div class="col-md-6" id="hodm_table">
    <table class="table table-striped table-hover table-responsive">
        <thead>
            <tr>
                <th>Task Name</th>
                <th>Director</th>
                <th>Duration</th> 
                <th>Status</th>
            </tr>
        </thead>
        <tbody id="hodm_results">

        </tbody>
    </table> 
</div>


<script type='text/javascript' language='javascript'>
    $(document).ready(function(){
        $.ajax({
            url:"<?php echo base_url();?>digital/dashboard/dig_short_hodm_table",
            type: 'POST',
            dataType: 'JSON',

            success:function (data) {
                $('#hodm_results').html(data);
            }
        });

        event.preventDefault();
    });
</script>

【讨论】:

  • 你能给我一个你收到的描述性错误信息吗?
  • 遇到 PHP 错误严重性:通知消息:未定义变量:结果文件名:digital/dashboard.php 行号:38 回溯:文件:C:\xampp\htdocs\tmt_project\application\views\ digital\dashboard.php 行:38 功能:_error_handler 文件:C:\xampp\htdocs\tmt_project\application\controllers\digital\dashboard.php 行:17 功能:查看 文件:C:\xampp\htdocs\tmt_project\index. php 行:292 函数:require_once
  • 我会添加另一个答案给我几秒钟
  • 好的,谢谢。我在等
  • 请点击我的问题。我已经标记了你的答案。谢谢你的帮助
【解决方案2】:

你必须这样改变

public function get_hodm()
 {
      return $this->db->get("hodm")->result();
 }

【讨论】:

  • 告诉我有什么问题或信息?
  • 我知道你只是用 $data 更改 $data['result'] 的问题
  • 第一个消息消息:未定义变量:结果闪烁然后显示空白页
  • 哦更改此行以返回 json_encode($data);进入 echo json_encode($data);
  • 你改变了什么和什么信息,你知道控制台吗?发现你的错?
【解决方案3】:

我已经更新了模型视图和控制器:

<script type='text/javascript' language='javascript'>
$(document).ready(function(){
$.ajax({
    url:"<?php echo base_url();?>digital/dashboard/dig_short_hodm_table",
    type: 'POST',
    dataType: 'JSON',

    success:function (data) {
        var result = data.result;'
        var row = "";
        for(i=0; i < result.length; i++) {
            row += "<tr>";
            row += "<td>"+result[i].t_name+"</td>";
            row += "<td>"+result[i].director+"</td>";
            row += "<td>"+result[i].duration+"</td>";
            row += "<td>"+result[i].status+"</td>";
            row += "</tr>";
        }
        $('#hodm_table > tbody').html(row);
    }

});
event.preventDefault();
});
</script>

这是我的模型

public function get_hodm()
{
    $query = $this->db->get("hodm");
    return $query->result_array();
}

这是我的控制器

public function dig_short_hodm_table(){

    $data['result']=$this->pojo->get_hodm();

    echo json_encode($data);

}

【讨论】:

  • 你能在控制台签到吗?你得到什么回应
  • 我得到了答案,感谢您的帮助。我更喜欢 EUG 答案
【解决方案4】:

尝试通过更改标题内容来像这样在控制器中返回

public function dig_short_hodm_table(){
header('Content-Type: application/x-json; charset=utf-8');
$data['result']=$this->pojo->get_hodm();
echo(json_encode($data));
}

【讨论】:

    【解决方案5】:

    像下面这样改变你的模型

    public function get_hodm()
    {
        $query = $this->db->get("hodm");
        return $query -> result();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多