метод, свойство - я не особо разбираюсь. Я пытаюсь написать прогу (HTA-приложение), которая производит запись содержимого ячеек таблицы в файл, а при каждом открытии программы она считывает из файла данные, и вставляет их в ячейки таблицы. Т.к. с php и базами я вообще не знаком (плюс ко всему надо, чтобы прога работала без сервера), пытаюсь организовать что-то типа базы данных на JS
Программа представляет из себя поля ввода и таблицы, куда записываются введенные значения, и кнопки сохранения, чтобы введенные данные сохранить (записать в файл), а при открытии программы автоматически их от туда доставать и подставлять в таблицы.
Вот код:
<HTML>
<HEAD>
<TITLE>Моя программа</TITLE>
<HTA:APPLICATION APPLICATIONNAME="firstHTA" BORDER=”” CAPTION="yes" ICON="my.ico" SHOWINTASKBAR="no" SINGLEINSTANCE="yes" SYSMENU="yes" WINDOWSTATE="normal" ></HEAD><BODY BGCOLOR="ButtonFace" SCROLL="no">
</HEAD>
<BODY>
<script>
var filepath1 = "dbID.txt"
var filepath2 = "dbData.txt"
// функция сохранения массива с id-шниками в файл базы айдишников и массива с данными в файл базы с данными
function go1() {
arr = new Array(); // при запуске функции сохранения очищаем массив id-шников
arrData = new Array(); // при запуске функции сохранения очищаем массив данных
// массив значений ID
var list = document.getElementsByTagName('*');
for(i=0; i<list.length; i++) {
if(list[i].id){
arr.push(list[i].id);
}
}
// создаем файл базы данных и записываем строку (массив) с ID
var fso = new ActiveXObject("Scripting.FileSystemObject")
var myfile = fso.CreateTextFile(filepath1)
myfile.Close()
var opnfile = fso.OpenTextFile(filepath1, 2)
opnfile.WriteLine(arr)
opnfile.Close()
// создаем массив из вытащенной строки из файла базы айдишников
var arrStr = arr+'' // строка из массива ID (для разбиения на массив)
var arrID = arrStr.split(',') // массив id-шников
// создаем массив данных, соответствующих айдишникам
for(i=0; i<arrID.length; i++) {
Data = document.getElementById(arrID[i]).innerHTML
arrData[i] = Data // МАССИВ С ДАННЫМИ
}
// создаем файл базы данных и записываем построчно данные из массива с данными плюс разделитель
var fso = new ActiveXObject("Scripting.FileSystemObject")
var myfile = fso.CreateTextFile(filepath2)
myfile.Close()
var opnfile = fso.OpenTextFile(filepath2, 2)
for(i=0; i<arrData.length; i++) {
opnfile.WriteLine(arrData[i]+'_w') // _w - это разделитель для формирования массива данных. Используем его, так как использовать запятую как в случае с массивом айдишников нельзя, т.к. данные могут содержать числа с запятой
}
opnfile.Close()
} // Конец функции
// ФУНКЦИЯ ЗАПИСИ ДАННЫХ ИЗ БАЗ ДАННЫХ В ЯЧЕЙКИ ТАБЛИЦ
function go2() {
// вытаскиваем и преобразовываем в массив айдишники из файла базы с айдишниками
var fso = new ActiveXObject("Scripting.FileSystemObject")
var myfile = fso.OpenTextFile(filepath1, 1)
var strID = myfile.ReadLine()
myfile.Close()
var arrID = strID.split(',') // массив айдишников
var fso = new ActiveXObject("Scripting.FileSystemObject")
var myfile = fso.OpenTextFile(filepath2, 1)
var DataStr = myfile.ReadAll()
var DataArr = DataStr.split('_w') // МАССИВ С ДАННЫМИ
myfile.Close()
// записываем в таблицы значения из массива с данными, соответствующие айдишникам из массива с айдишниками
for(i=0; i<arrID.length; i++) {
document.getElementById(arrID[i]).innerHTML = DataArr[i]
}
} // конец функции
</script>
<input type="button" value="Сохранить" onclick="go1()">
<input type="button" value="Извлечь из БД" onclick="go2()">
<table width="600" border="1" cellspacing="0" cellpadding="0">
<tr>
<td align="center" id="a3">Data1</td>
<td align="center" id="b3">Data2</td>
<td align="center" id="c3">Data3</td>
<td align="center" id="d3">Data3</td>
</tr>
</table>
</BODY>
</HTML>