我的数据库中有一个带有base64 Image的图书清单。打开图书插入页面时,我将所有图书信息(包括名称,ISBN,发布者等)加载到数组中,但图像除外。因此,当我在字段中插入书籍ID时,我希望在收费提示中显示图像。我将命中对控制器的请求并获取图像。但是我的工具提示不起作用。甚至我得到的图像数据都是未定义的。
这是插入行的代码:
$('#dg').datagrid('insertRow', {
index: editIndex, // index start with 0
row: {
book_id: item_id[val], bookname: item_name[val],image: item_image[val], authors: item_authors[val],
item_rate: item_localsale_rate[val], isbn: item_isbn[val],item_quantity: vr_qty, itemcost: 0, item_discount: 0, unitcost: totalItemCost
}
})
这是我用于生成工具提示的代码:
$(this).datagrid('getPanel').find('tr.datagrid-row').each(function () {
var index = parseInt($(this).attr('datagrid-row-index'));
$(this).tooltip({
zIndex: 9999999,
trackMouse: false,
position: 'top',
content: '<span style="color:#fff;"><img src=' + data.rows[index]['image'] + ' width="100" height="100"></span>'
})
})
这是我为加载数据创建的数组: 它的工作正常。所有数据均已成功加载
var bookList = new Array();
var item_id = new Array();
var item_name = new Array();
var item_image = new Array();
var item_isbn = new Array();
var item_authors = new Array();
var item_face_rate = new Array();
var item_wholesale_rate = new Array();
var item_localsale_rate = new Array();
var item_retailsale_rate = new Array();
var item_special_price = new Array();
var item_teacher_price = new Array();
var store_id = new Array();
var b_id = <?php echo $row->book_id; ?>;
item_id[b_id] = <?php echo $row->book_id; ?>;
item_name[b_id] = '<?php echo $row->name; ?>';
item_isbn[b_id] = '<?php echo $row->isbn; ?>';
item_image[b_id] = '';
item_authors[b_id] = '<?php echo $row->authors; ?>';
item_localsale_rate[b_id] = <?php echo $row->local_sale; ?>;
store_id[b_id] = <?php echo $row->store_id; ?>;
var url = '<?php echo base_url('sales/Salesinvoice/getBookCover'); ?>'+'/'+ item_id[val];
alert(url);
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
success: function (data) {
var image = data.image;
item_image[val] = image;
alert(image);
},
error: function (error) {
alert('Due Collect error');
}
});
我实际上对方法有点困惑。将行插入到datagrid时获取图像的方法应该是什么。