【发布时间】:2015-06-23 15:59:56
【问题描述】:
我正在使用 django 来设置一个基本的网络应用程序。我有一个 Handsontable,它使用表格,允许用户更新表格,按下 SAVE 按钮并将更改保存到 csv 文件。我的问题是我无法弄清楚如何正确传递数据。
我的方法是 afterChange 函数应该在更新表时将数据传递到 table_data_dump div 以便在按下 SAVE 按钮执行的 python 代码中使用它。
但是它似乎没有这样做,我无法弄清楚数据变量的正确用法。我是 JS 新手,所以很容易混淆。
完整的JS如下:
<script type="text/javascript">
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});
var data = [['', '', '', ''], ['', '', '', ''], ['', '', '', ''],
['', '', '', ''], ['', '', '', ''], ['', '', '', ''],
['', '', '', ''], ['', '', '', ''], ['', '', '', '']];
var dataArray = {};
dataArray['bnb'] = '/static/data/oim-oimom/lookup_bnb.csv'
dataArray['testsplit'] = '/static/data/oim-oimom/lookup_testsplit.csv'
dataArray['test two'] = '/static/data/oim-oimom/lookup_test-two.csv'
var afterChange = function() {
console.log(JSON.stringify(data));
document.getElementById('table_data_dump').innerHTML = JSON.stringify(data)
};
var createTable = function(data) {
var container = document.getElementById('lookup');
var hot = new Handsontable(container, {
data: data,
afterChange: afterChange,
minSpareRows: 1,
rowHeaders: true,
colHeaders: ['col1','col2','col3', 'Assignment'],
columns: [
{readOnly: true},
{readOnly: true},
{readOnly: true},
{}
],
colWidths: [335, 335, 335, 335]
})};
createTable(data);
var SelectBoxChange = function() {
var e = document.getElementById("split_name_select");
var split_select = e.options[e.selectedIndex].text;
$.get(dataArray[split_select], function(data) {
document.getElementById('lookup').innerHTML='';
data = $.csv.toArrays(data);
createTable(data);
});
};
</script>
【问题讨论】:
标签: javascript csv handsontable