Javascript 本地存储未存储/检索值

Javascript 本地存储未存储/检索值,javascript,php,html,Javascript,Php,Html,这是我的代码: <select name="category" id="category" value="category" class="form-control ddplaceholder" style="width:220px;font-size:18px;font-family:Roboto;" onchange="document.form.submit();"> <script> var cat = localStorage.getI

这是我的代码:

    <select name="category" id="category" value="category" class="form-control ddplaceholder" style="width:220px;font-size:18px;font-family:Roboto;" onchange="document.form.submit();">
    <script>
     var cat = localStorage.getItem('category');
     localStorage.setItem('category', cat);
    </script> 
        <option value="" disabled selected>Select Category</option>
    <?php
    $sth = $conn->prepare('Select name From category');
    $sth->execute();
    $data = $sth->fetchAll();   
    foreach ($data as $row ){
        if($row['name']!="")
     echo ' <option id=\"CategoryName\" nameCategoryNameVendorName\" value="' .$row['name']. '">'.$row['name'].'</option>';
    }
    ?> 
    </select>

var cat=localStorage.getItem('category');
localStorage.setItem('category',cat);
选择类别

我希望在通过
onchange=“document.form.submit();”
提交页面后,仍能在下拉列表中检索下拉列表“category”的选定值。为什么没有发生?

您需要在选择列表的onchange事件上设置本地存储值:

<select name="category" id="category" //other inline code not shown // onchange="setValue();document.form.submit();">

   <script>
    function setValue(){
      var cat=document.getElementById('category').value;
      localStorage.setItem('category', cat);
   }
    </script> 

然后您可以重置选择列表的C值。

首先在
localstorage
中设置值,然后在
提交表单中设置值

<script>
function SetValue()
{
 var cat = document.getElementById("category").value;
 localStorage.setItem('category', cat);
 document.forms[0].submit();
}
</script>


仍然在使用旧代码
onchange=“document.forms[0].submit();”
在获取值之前,您是否已将值存储在
localstorage
中?您不是这样存储的吗<代码>var cat=localStorage.getItem('category')“为什么没有发生?”你怎么知道?当用户从下拉列表中选择一个值时,您应该首先将该值设置为
category
。@feeela只有当用户从下拉列表中选择一个值时,该值才会发生。页面才会刷新,并且所选值不会放回下拉列表。无法工作。请尝试console.log()存储变量的值,以查看它是否存储到本地存储中-您也可以在开发人员控制台中查看存储对象并查看其中的值,因此这是我写的:`function SetValue(){var cat=document.getElementById(“类别”).value;localStorage.setItem('category',cat');document.forms[0].submit();}window.onload=function GetValue(){var cat=localStorage.getItem('category');document.getElementById('category')。value=cat;}`但该值没有保留。只需在控制台中运行此行,查看是否保留了实际值
localStorage.getItem('category')我在控制台中运行了它。它显示为空。你正在使用哪个浏览器?我正在使用谷歌浏览器。
<script>
function SetValue()
{
 var cat = document.getElementById("category").value;
 localStorage.setItem('category', cat);
 document.forms[0].submit();
}
</script>
<script>
window.onload = function GetValue()
{

 var cat = localStorage.getItem('category');      
 document.getElementById("category").value = cat;
}
</script>