Javascript本地存储无法使用从mysql填充的下拉菜单

Javascript local storage not working with drop menu populated from mysql

本文关键字:mysql 填充 下拉菜单 存储 Javascript      更新时间:2023-09-26

我习惯于在重新加载后或在具有相同下拉菜单的其他页面中保留菜单中的选定项目。这段代码运行得很好,但我需要用mysql填充mi下拉菜单。

document.getElementById("plist").onchange = function() {
    localStorage.setItem('plist', document.getElementById("plist").value);
}
if (localStorage.getItem('plist')) {
    document.getElementById("plist").options[localStorage.getItem('plist')].selected = true;
}
<select name="produttore" id="plist">
    <option value="0">Audi</option>
    <option value="1">BMW</option>
    <option value="2">Alfa Romeo</option>
    <option value="3">Aborth</option>
</select>

如果我用那个代码填充菜单,本地存储似乎就不起作用了。

document.getElementById("plist").onchange = function() {
    localStorage.setItem('plist', document.getElementById("plist").value);
}
if (localStorage.getItem('plist')) {
    document.getElementById("plist").options[localStorage.getItem('plist')].selected = true;
}
<select name="produttore" id="plist">
<option value=" ">Seleziona produttore</option>
<?php
foreach($results as $produttore) {
?>
<option value="<?php echo $produttore["category_id"]; ?>"><?php echo $produttore["name"]; ?></option>
<?php
}
?>
</select>

保持冷静,不要杀了我我是个傻瓜

正如miraco所说,问题在于价值。我更改了代码,使用"selectedIndex"而不是"value"就可以了。