Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在网站上存储输入的状态?_Javascript_Php_Jquery_Python_Html - Fatal编程技术网

Javascript 如何在网站上存储输入的状态?

Javascript 如何在网站上存储输入的状态?,javascript,php,jquery,python,html,Javascript,Php,Jquery,Python,Html,我创建了一个webUI,用树莓pi控制中继板 当按下按钮时,我通过AJAX请求访问。php将相应的命令发送到控制继电器的python脚本 <!DOCTYPE html> <html> <body> <label class="switch"> <input type="checkbox" id="IN1" onclick="in1()"> </label> </body> <script>

我创建了一个webUI,用树莓pi控制中继板

当按下按钮时,我通过AJAX请求访问。php将相应的命令发送到控制继电器的python脚本

<!DOCTYPE html>
<html>
<body>
  <label class="switch">
  <input type="checkbox" id="IN1" onclick="in1()">
  </label>
</body>

<script>
  function in1() {
    var x = document.getElementById("IN1").checked;
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "relais.php?dir=IN1=" + x, true);
    xhttp.send();
    var out1 = x; }
</script>
</html>

函数in1(){
var x=document.getElementById(“IN1”)。选中;
var xhttp=newXMLHttpRequest();
xhttp.open(“GET”、“relais.php?dir=IN1=”+x,true);
xhttp.send();
var out1=x;}

问题是页面被重新加载,按钮被重置为“未选中”状态。如何将输入的状态存储在Web服务器上?结果是,我可以从另一台设备访问webUI,每次重新加载时按钮都会被“记住”。

有两种方法可以保持页面的一致性(我可以从头顶上想到)

  • 您需要将状态存储在数据库和/或服务器会话中
  • 否则,您可以将其存储在cookie中,并获取cookie内容,但cookie可以被删除和编辑,因此它可能不是最佳解决方案
  • PHP示例:
    Q:我如何让webbrowser知道每次加载网站时哪些按钮处于“选中”状态,哪些按钮处于“未选中”状态

    答:如果你想“保存状态”关于一个特定的网页浏览器,使用cookies

    如果您只想“保存状态”,则需要在Web/PHP服务器上使用某种类型的“数据库”

    MySQL是一个不错的选择,但在您的情况下,任何东西都可以工作:包括MongoDB noSQL数据库,甚至一个简单的文本文件

    就个人而言,我更喜欢服务器端解决方案。但这里有一个使用jQuery和Cookie的示例—完全在浏览器端:


    OP提到了在多个设备上持续存在的状态,排除了cookie和会话。它不会排除我在第一个选项中提到的数据库和会话。好的。我可以直接用Javascript向数据库发出请求,还是需要使用php?(我知道JS是客户端的,但在JS中有没有一种方法呢?)您可以发出ajax请求,服务器代码,
    php
    python
    ,或者您正在使用的任何服务器语言都可以返回json,然后您的javascript可以处理。有没有这样的使用示例,我可以从中获得更多信息。我只是说说而已,但这应该是可行的。
    // Make a request to the php file with the key `123456`.
    // This could be a user id, hash or whatever you want it to be
    // as long as it is in the database.
    // this example is using it as a user id.
    $.get('/path/to/phpfile.php?key=123456', result => {
        console.log(result);
    });