通过在数据库中查询图像文件名,在 Codeigniter 中使用 AJAX 显示图像列表
Posted
技术标签:
【中文标题】通过在数据库中查询图像文件名,在 Codeigniter 中使用 AJAX 显示图像列表【英文标题】:Displaying a list of images using AJAX in Codeigniter by querying image filenames form database 【发布时间】:2013-02-28 14:16:00 【问题描述】:我有一个存储在数据库中的一些图像的文件名列表。我正在尝试使用 ajax 获取该列表,但我收到了警告消息:
[json] (php_json_encode) type is unsupported, encoded as null
下面是我的代码:
控制器:
<?php
class Create extends CI_Controller
public function __construct()
parent::__construct();
$this->load->model('get_files');
public function index()
$data['title'] = 'Create New Map';
$this->load->view('head&foot/create_header', $data);
$this->load->view('create', $data);
$this->load->view('head&foot/create_footer');
// Loads the default tiles into the gallery
public function update_gallery()
echo json_encode($this->get_files->get_image_list());
?>
型号:
<?php
/*
* Returns a list of files from a database
*/
class Get_files extends CI_Model
public function __construct()
parent::__construct();
$this->load->database();
function get_image_list()
return $this->db->query("SELECT * FROM default_tile");
?>
在我看来,ajax 请求是:
$.ajax(
url:'create/update_gallery',
type:'GET',
success:function(data)
$('#default_tiles_view').html(data);
)
任何人都可以看到导致警告的原因吗?
【问题讨论】:
$this->get_files->get_image_list()
返回什么?
【参考方案1】:
问题在于您的get_image_list()
方法。它实际上并没有返回一个图像列表,而是一个database result object
: $this->db->query("SELECT * FROM default_tile")
的结果。
在该函数中,您将需要遍历结果集以获取列表(数组)中的所有图像并从函数返回该列表。
例子:
function get_image_list()
$images = array();
$query = $this->db->query("SELECT * FROM default_tile");
// simple example
foreach ($query->result_array() as $row)
$images[] = $row;
return $images;
【讨论】:
以上是关于通过在数据库中查询图像文件名,在 Codeigniter 中使用 AJAX 显示图像列表的主要内容,如果未能解决你的问题,请参考以下文章
带有查询字符串的 JavaScript 文件,用于在 img src 中动态生成画布作为 png 图像