обновление данных из ввода - PullRequest
0 голосов
/ 30 января 2019

У меня есть простая мобильная страница jquery, которая должна найти id в indexedDb, и после того, как вы ее найдете, обновите остальную информацию, если такая запись id существует.(У меня есть 10 записей, которые я вставил) Я не могу найти правильный способ сделать это.Я вставляю пустые данные, или моя вторая кнопка не отвечает, если я использую код ниже Вот мой код: js:

     let updateCompId = $("#updateCompId").val();
      $("#updateButton").click(function() {
              // var updateCompId = $("#updateCompId").val();
              let tx = db.transaction(["Clients"], 'readwrite');
              let store = tx.objectStore("Clients");

                      var readCompanyId = store.get(updateCompId);

                      if (readCompanyId = updateCompId) {

                            store.openCursor().onsuccess = function(event) {
                            let cursor = event.target.result;
                            if (cursor) {
                                document.getElementById('updateForm').style.display = "";

                                cursor.continue();
                            }
                        };
                      }
});


  $("#updateInfo").click(function() {
    console.log("here");
        var tran = db.transaction(["Clients"], "readwrite");
        var store = tran.objectStore("Clients");
        // var compId = $("#updateCompId").val();

        var updateCompName = $("#updateCompName").val();
        var updatePost = $("#updatePost").val();
        var updateCompAddress = $("#updateCompAddress").val();
        var updateCity = $("#updateCity").val();
        var updateCountry = $("#updateCountry").val();
        var updateContact = $("#updateContact").val();
        var updatePhone = $("#updatePhone").val();
        var updateEmail = $("#updateEmail").val();

        var item = {
            id:updateCompId,
            Name:updateCompName,
            Post:updatePost,
            Address:updateCompAddress,
            City:updateCity,
            Country:updateCountry,
            Contact:updateContact,
            Phone:updatePhone,
            Email:updateEmail
        };
        console.log(item);
        store.put(item);
  });

HTML:

        <form id="findId">
          Enter Company Id to update information:
          <input id="updateCompId" type="text" name="updateCompId"/>
          <button id="updateButton" class="ui-btn">find to update</button>
          <p id="updateCustomer"></p>
          <button id="updateInfo" class="ui-btn">Update</button>
        </form>

        <form id="updateForm">
          Company name:
          <input id="updateCompName" type="text" name="compName"/>
          Post code:
          <input id="updatePost" type="text" name="post"/>
          Company address:
          <input id="updateCompAddress" type="text" name="compAddress"/>
          City:
          <input id="updateCity" type="text" name="city"/>
          Country:
          <input id="updateCountry" type="text" name="country"/>
          Contact number:
          <input id="updateContact" type="text" name="contact"/>
          Company phone:
          <input id="updatePhone" type="text" name="phone"/>
          Email:
          <input id="updateEmail" type="text" name="email"/>

        </form>

1 Ответ

0 голосов
/ 02 февраля 2019

Я предлагаю вам уделить некоторое время, чтобы узнать больше о IndexedDB. Mozilla , Google документы для него и рекомендации W3 хороши для этого.

По вашему вопросу у вас есть get, чейрезультат, который вы пытаетесь сравнить с другим значением.Это неправильно, потому что все взаимодействия с IndexedDB являются асинхронными и возвращают экземпляр IDBRequest с обратными вызовами onsuccess и onerror.Вы можете получить результат get в обратном вызове onsuccess, но вместо этого вы сравниваете фактическое значение с экземпляром IDBRequest.

...