我想在我的ajax回调函数中获取我的handsontable网格的一个单元格的值。所以我可以获取我的网格,因为当我执行alert(hot);
时,它只会告诉我[Object][Object]
而不是未定义的'。但现在,我试图获得一个值并选择一个这样的单元格:
alert(hotTraitement.getDataAtCell(1,1));
Firebug告诉我:
hotTraitement.getDataAtCell不是函数
我做错了什么?
编辑:
我在窗口中声明我的动手。像这样:
$(window).load(function(){
var data = [];
var container = document.getElementById('tab_traitement');
var hotTraitement = new Handsontable(container, {
data: data_traitement,
stretchH: 'all',
minSpareRows: 1,
observeChanges : true,
rowHeaders: false,
colHeaders: false,
contextMenu: true,
...
});
});
我将hotTraitement
传递给参数如下:
function insertTraitementCallback(responseObject,ioArgs,hotTraitement)
它似乎有效,因为我得到[对象对象]而没有"未定义"。
如果我错了,那么我应该如何在回调中提供hotTraitement?
编辑2:
在我的功能中,我现在尝试显示一个单元格的内容,看看我是否可以获取hotTraitement
:
function insertTraitementCallback(responseObject,ioArgs,hotTraitement)
{
alert(hotTraitement.getDataAtCell(1,1));
}
Firebug告诉我" hotTraitement.getDataAtCell不是一个功能"。
编辑3:
function insertTraitementCallback(responseObject,ioArgs)
{
var idTableau ='tab_traitement';
var table = 'traitement';
var indexCell = 1;
var jsonobject = eval(responseObject);
console.log(hotTraitement.getDataAtCell(1,1));
callback(jsonobject,data_traitement,idTableau,table, indexCell,'insert');
}
var data = [];
</script>
<script type="text/javascript">
$(document).ready(function()
{
$(window).load(function(){
container = document.getElementById('tab_traitement');
hotTraitement = new Handsontable(container, {
data: data_traitement,
stretchH: 'all',
minSpareRows: 1,
observeChanges : true,
rowHeaders: false,
colHeaders: false,
contextMenu: true,
...
});
var table = 'traitement';
$('#submit_button_traitement').click(function()
{
var id_essai = $('.session').text();
arrayDataIDTraitement.length = 0;
arrayDataCodeTraitement.length = 0;
var idTable='id_traitement';
$.post("ajaxUpdate.php",{arr:data_traitement,id_essai,table,idTable},insertTraitementCallback,'json');
for(var i =1; i<data_traitement.length-1 ; i++) //Création du tableau pour les listes déroulantes
{
arrayDataIDTraitement.push(data_traitement[i][1]);
arrayDataCodeTraitement.push(data_traitement[i][0]);
}
});
});
答案 0 :(得分:0)
您有一个范围问题。 hotTraitement将不会在回调中提供。您需要将hotTraitement传递给ajax设置选项,然后在回调中使用该变量。执行回调的上下文不同。