将Json数组值从codeigniter传递到Jquery日历错误

时间:2015-12-14 17:26:52

标签: php jquery json codeigniter calendar

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

calendar.php在视图中

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

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

Controller Calr.php

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

}

Model 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数组值不是从数据库中恢复的, 静态输入在视图中工作,如

calendar.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>

此致

Vinoth

1 个答案:

答案 0 :(得分:0)

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

你的控制器:

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函数检索数据,否则可能无法正常工作。