Jump to content

ThAD

Newbie
  • Posts

    2
  • Joined

  • Last visited

Everything posted by ThAD

  1. Всё дело в асинхронности Web Sql Database, похоже...
  2. <html><head> <script type="text/javascript"> /* На странице имеются три динамически создаваемых <span id="someid1"> и <span id="someid2"> элемента, * заключённых в дивы с id="Item". Обращение к ним идёт через someid1[i] и someid2[i]. * Также на странице имеется кнопка, которая по клику собирает содержимое спанов и записывает * всё в таблицу базы WebSQL через вот такую нехитрую функцию: */ function getElements() { // Открываем базу var db = openDatabase("MyBase", "1.0", "Test DB", 200000); // Создаём таблицу, если она ещё не создана. db.transaction(function(tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS ' + 'items(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, item_title TEXT, item_content TEXT)', [], null, null); }); // Начинаем шпиговать таблицу значениями. for (i = 0; i < Item.length; ++i) { var j = i; db.transaction(function(tx) { tx.executeSql("INSERT INTO items (item_title, item_content) VALUES (?, ?)", [someid1[j].textContent, someid2[j].textContent], function(tx) {alert('Запись' + j + 'внесена в таблицу ITEMS')}, null); }); } } </script></head> <body> <span id="button" onClick="getElements()">Занести в базу</span><br /><br /> <div id="Item"> <span id="someid1">Заголовок 1</span><br /> <span id="someid2">Содержание 1</span><br /><br /> </div> <div id="Item"> <span id="someid1">Заголовок 2</span><br /> <span id="someid2">Содержание 2</span><br /><br /> </div> <div id="Item"> <span id="someid1">Заголовок 3</span><br /> <span id="someid2">Содержание 3</span><br /><br /> </div> </body></html>На выходе я имею три алерта о том, что в таблицу занесена запись [2], таблицу items вида: + - - - - - - - - - - - - - - - -+ | id | item_title | item_content | + - - - - - - - - - - - - - - - -+ | 1 | someid1[2] | someid2[2] | | 2 | someid1[2] | someid2[2] | | 3 | someid1[2] | someid2[2] | + - - - - - - - - - - - - - - - -+ и вполне закономерный вопрос: почему вместо того, чтобы идти по порядку, в запрос попадают только последние элементы? Где искать ошибку? И ещё. Если в функции помимо запросов имеются операторы alert, то игнорятся все запросы к БД. Почему? Помогите разобраться.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy