我有一个表格,当选择一个选项时,它会更改表格单元格行的颜色。但是当我刷新页面时,颜色又变回默认颜色。我该如何修复表格中突出显示的颜色?
这是我的 php 和 mysql 表的代码:
<?php
while ($record = mysqli_fetch_array($result)) {
echo"<tr>";
echo"<td style='text-align : center;'>" . $record['id'] . "</td>";
echo '<select name="select" onchange="myJSFunction(this)">
<option></option>
<option>Approved</option>
<option>Pending</option>
<option>Disapproved</option>
</select>';
echo "</td>";
echo "</tr>";
}
}
echo "</ul>";
echo '<a class="btn btn-lg btn-success btn-block tp" href="view.php" style="margin-left: 740px; bottom: -1px; position: relative;" onclick="history.back();">Back</a>';
?>
这是我的 jQuery 代码,我用它来突出显示表格单元格的行:
<script type="text/javascript">
function myJSFunction(element) {
var color = ['none', 'green', 'yellow', 'red'];
$('select').change(function() {
$(this).parents('tr').css('background', color[$(':selected', this).index()]);
})
}
</script>
最佳答案
您可以使用cookies,您可以获得cookies的所有相关功能here
在页面顶部设置一个空白 cookie
document.cookie="saveselect=";
每次用户更改记录['id']|'选定值'、记录['id']|'选定值'等任何选择时,更新 javascript 函数中的 cookie,.....
在更新 cookie 时,您需要注意 cookie 会被覆盖而不是更新,这意味着采用现有值,将新值附加到其中并将新数据写入 cookie。
现在,当页面在 while 循环中加载时,您可以获取 cookie 的值,并通过“|”将其分解并将其转换为数组。
现在,在每个选择中搜索创建的数组,如果其值保存在 cookie 中,如果是,则使用“selected”属性选择选项。这样,您选择的值将出现在选择框中。
您需要将以下脚本添加到代码中。它将检查创建的所有选择,然后根据所选值更改每个选择的颜色。
<script type="text/javascript">
$(document).ready(function(){
var color = ['none', 'green', 'yellow', 'red'];
$('select').each(function(){
$(this).parents('tr').css('background', color[$(':selected', this).index()]);
})
});
</script>
我已经为您提供了完整的逻辑并创建了 jquery 来为每个选择框设置颜色。
关于php - 刷新页面时,表格单元格突出显示的行的颜色发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261281/