【发布时间】:2018-01-29 15:11:14
【问题描述】:
我正在尝试使用 localStorage.getItem() 获取选定选择的值,但它给了我一个错误。
这是我的选择:
<div class="field">
<label>Work Area</label>
<select class="ui fluid dropdown work_area" id="work_area" name="work_area">
<option selected value="">Select Work Area.</option>
<?php selectWorkArea(); ?>
</select>
</div>
这是我的 PHP 函数
function selectWorkArea(){
$conn = New Connection;
$sql = "SELECT DISTINCT work_area FROM machine ORDER BY work_area ASC";
$qry = $conn->select($sql,NULL,'0129180857');
while($row= $qry->fetch(PDO::FETCH_OBJ)){
$work_area = $row->work_area;
echo "<option data-value='$work_area' >$work_area</option>";
}
}
这是我的 Javascript
var select = document.querySelector(".work_area");
var selectOption = select.options[select.selectedIndex];
var lastSelected = localStorage.getItem('select');
if(lastSelected) {
select.value = lastSelected;
}
select.onchange = function () {
lastSelected = select.options[select.selectedIndex].value;
console.log(lastSelected);
localStorage.setItem('workarea', lastSelected);
}
我得到了这个错误: Error image click here
但是当我尝试将我的选择更改为这个时,它工作得很好
<div class="field">
<label>Work Area</label>
<select class="ui fluid dropdown work_area" id="work_area" name="work_area">
<option selected value="">Select Work Area.</option>
<option data-value="1">1</option>
<option data-value="2">2</option>
</select>
</div>
【问题讨论】:
-
你有
localStorage.getItem('select')和localStorage.setItem('workarea', lastSelected)你有两个不同的名字是正确的吗?因为如果我将select更改为workarea那么它就可以了。 -
尝试将
echo "<option data-value='$work_area' >$work_area</option>";更改为echo '<option data-value="$work_area" >$work_area</option>'; -
能否在
select.value =之前给出console.log(select)的输出 -
Jason 只需将
getItem('select')更改为getItem('workarea')或将localStorage.setItem('workarea', lastSelected)更改为localStorage.setItem('select', lastSelected) -
我通过删除
data-value属性中的“数据”得到它。但我的新问题是刷新页面时数据被删除我尝试使用这个localStorage.setItem('workarea',$('.work_area').val())但数据仍然被删除
标签: javascript php local-storage