我有一个表,当选择了一个选项时,它会改变表格单元格行的颜色。但是当我刷新页面时,颜色会变回默认颜色。如何修复表格中突出显示的颜色?
这是我的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>
答案 0 :(得分:1)
您可以使用Cookie,您可以获取Cookie的所有相关功能here
使用
在页面顶部设置空白Cookiedocument.cookie="saveselect=";
每次用户更改任何选择时,请在您的javascript函数中更新Cookie,例如记录[&#39; id&#39;] |&#39;所选值&#39;,记录[&#39; id&#39; ] |&#39;选择值&#39;,.....
在更新cookie时,您需要注意cookie被覆盖且未更新意味着获取现有值,将新的值附加到cookie并将新数据写入cookie。
现在,在while循环中加载页面时,您可以使用Cookie的值将其爆炸为&#39; |&#39;并将其转换为数组。
现在,在每个选择中搜索创建的数组,如果其值保存在cookie中,如果是,则使用选择的&#39;选择选项。这样,您选择的值将出现在选择框中。
您需要将以下脚本添加到代码中。它将检查所有创建的选择,然后根据所选值更改每个选择颜色。
<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来为每个选择框创建颜色。
答案 1 :(得分:0)
您还可以在用户更改颜色时创建会话,或者也可以在数据库中存储颜色值