【问题标题】:Passing Json array value from codeigniter to Jquery calendar Error将 Json 数组值从 codeigniter 传递到 Jquery 日历错误
【发布时间】:2015-12-14 17:26:51
【问题描述】:

我正在尝试将 Jquery 日历插件与 codeigniter 数据库集成并传递 Json 数组会出现什么错误感谢您的帮助。

calendar.php 在视图中

<script>
var unavailableDates = '<?php echo base_url() ?>Calr/getevent';

$('#calendar').availabilityCalendar(unavailableDates);
</script>

控制器 Calr.php

public function getevent()
{
    $this->load->model(user/Calr_model/SelectAll);

}

模型 Calr_model.php

function SelectAll()
{
    $sql = 'SELECT start_date,end_date,link FROM tbl_events';
    $query = $this->db->query($sql);
    // Fetch the result array from the result object and return it
    return $query->result();
}

在calr_model.php中也试过这个功能

function SelectAll()
{
$sql = 'SELECT start_date,end_date,link FROM tbl_events';
$query = $this->db->query($sql);
// Fetch the result array from the result object and return it
return $query->result();
$emparray = array();
while($row =mysqli_fetch_assoc($query))
{
$emparray[] = $row;
}
echo json_encode($emparray);
}

但 json 数组值不会从数据库中检索, 在视图中工作的静态输入,如

日历.php

<script>
var unavailableDates = [{start: '2015-08-31', end: '2015-09-05', title:'Event 1'} {start: '2015-09-11', end: '2015-09-15', title:'Event 2'},{start: '2015-09-15', end: '2015-09-23', title:'Event 3'},{start: '2015-10-01', end: '2015-10-07', title:'Event 4'}];
$('#calendar').availabilityCalendar(unavailableDates);
</script>

问候,

维诺特

【问题讨论】:

  • 因为你没有返回 json 数据
  • Vigneswaran S 用我尝试过的另一个模型函数编辑了我的问题

标签: php jquery json codeigniter calendar


【解决方案1】:

您应该更好地区分模型和控制器。模型不应该呼应任何东西。这是控制器的工作。

你的控制器:

public function getevent()
{
  $this->load->model('Calr_model');
  $data = $this->Calr_model->SelectAll();
  echo json_encode($data);
}

您的模型(确保将字段重命名为正确的 javascript 名称,为您省去以后的麻烦):

function SelectAll()
{
  $sql = 'SELECT `start_date` AS `start`, `end_date` AS `end`, `link AS `title` FROM tbl_events';
  $query = $this->db->query($sql);
  return $query->result();
}

您可以在正常页面的页面加载时加载此模型方法。所以你不需要另一个控制器。如果您使用 AJAX 通过正常的 Ajax 调用检索数据,并在成功时使用

将事件添加到日历
$.ajax({url: "/Calr/getevent/", success: function(result){
  $('#calendar').availabilityCalendar(result);
}});

请注意,日历加载完成后通常会有一个事件。使用该事件通过上面的 Ajax 函数检索数据,否则可能无法正常工作。

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 2014-02-16
    • 2014-01-09
    • 1970-01-01
    相关资源
    最近更新 更多