当前位置: 首页 > 知识库问答 >
问题:

如何从localStorage检索信息以传递给数据库

桓风史
2023-03-14

我正在尝试从localStorage获取信息,以传递给应用程序中的数据库。我在控制台中输入“localstorage”,它会显示正确的值,所以我相信它可以在那里进行检索。然而,由于某种原因,我无法得到数据。现在,变量rfidText正在通过键盘输入设置。我想通过抓取LocalStorage中“userid”中的字符串来设置它。下面我有一个评论,我已经尝试了,但不起作用。我在file1中调用localstorage.setitem(),在file2中调用localstorage.getitem():知道为什么吗?文件1的javascript是:

/*jslint browser: true*/
/*global $, jQuery*/

$(document).ready(function () {

    "use strict";
    var scanned = false,
    scannedInput = [];

    $(window).keypress(function (scanEvent) {

        if (scanEvent.which >= 48 && scanEvent.which <= 57) {
            scannedInput.push(String.fromCharCode(scanEvent.which));
        }

        setTimeout(function () {

            if (scannedInput.length === 10) {

                var userID = scannedInput.join("");
                scanned = true;
                window.localStorage.setItem('userID', userID);
                $("#userId").val(userID);

                if (scanned) {
                    window.location.href = "../html/registration.html";
                }
            }

        scannedInput = [];

        }, 500);
    });
});

文件2的javascript是:

console.log(window.localStorage.getItem('userID')); // this prints
var rfidText = window.localStorage.getItem('userID');
console.log(rfidText);  // this doesn't print

var avatarText = "";

var config = {
    apiKey: xxx  //private info
    authDomain: xxx //private info
    databaseURL: xxx //private info
    storageBucket: xxx //private info
};

firebase.initializeApp(config);

var database = firebase.database();

function setAvatar(avatarName) {
    avatarText = avatarName;
    console.log(avatarText);
}

function writeToFirebase(idInput, languageInput, avatarInput, nameInput, 
ageGroupInput) {

    database.ref("RFID/" + idInput).set({
        id: idInput,
        language: languageInput,
        avatar: avatarInput,
        name: nameInput,
    ageGroup: ageGroupInput,
});
}

function update() {

    var rfidText = document.getElementById("rfidInput").value;

    /* instead of the line above, I want to set rfidText with this line
    var rfidText = localStorage.getItem("userID");  << doesn't work */

    var languageText = document.getElementById("languageInput").value;
    var nameText = document.getElementById("nameInput").value;
    var ageGroupText = document.getElementById("ageGroupInput").value;

    writeToFirebase(rfidText, languageText, avatarText, nameText, 
    ageGroupText);
}

共有1个答案

程俊力
2023-03-14

可以使用localstorage.setitem(“key”,“value”);进行设置

您可以使用localstorage.getitem(“key”);获取它

您可以使用LocalStorage.RemoveItem(“key”);删除它

 类似资料:
  • 如果需要与特定的应用编程接口/硬件组件交互,您将如何将信息从Flutter传递回Android/Native代码? 是否有任何事件通道可以以其他方式或类似于回调的方式发送信息? platform_channel文档指出,“方法调用也可以反向发送,平台充当Dart中实现的方法的客户端。quick_actions插件就是一个具体的例子。”在这种情况下,我看不出本机是如何接收到来自Flatter的消息的

  • 问题内容: 我正在为下面的用例设计Cassandra列族模式。.我不确定为下面的用例设计cassandra列族的最佳方法是什么?我将为此使用CQL Datastax Java驱动程序。 以下是我的用例和我现在设计的示例架构- 现在我将从上表中看到的是这样的- 每当我的应用程序运行时,我都会第一次要求上表中的所有内容。这意味着要给我上表中的所有内容。 然后每隔5或10分钟,我的后台线程就会检查该表,

  • 我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地:

  • 问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,