我有一个小函数,在Javascript / JQuery中,它将一个三个类中的一个添加到div中,以根据日期差异对div的背景进行颜色编码。
日期差异由PHP计算出来,然后将值回显/打印到隐藏字段中,当我使用JQuery加载到循环中时,我的代码:
$(document).ready(function () {
var SetDateOne = 3;
var SetDateTwo = 7;
var SetDateThree = 8;
$('.HideMe').each(function (i) {
//This gets the hidden divs date diff.
GetDateDiff = $("#Date" + i).html();
if (GetDateDiff <= SetDateOne) {
$('#' +i).addClass("RedLight");
} else if (GetDateDiff <= SetDateTwo) {
$('#' +i).addClass("YellowLight");
} else if (GetDateDiff >= SetDateThree) {
$('#' +i).addClass("GreenLight");
}
}); //End of .each function
});
所以这一切都有效,但我试图让这三个日期设置在顶部是用户定义的吗?我在考虑会话信息?但我不确定,但我的想法是在我的数据库中创建一个新表,只有一个id和日期设置然后在这个表中设置三个日期然后将它们加载到会话但是这将是PHP,所以不确定我可以将会话数据加载到JavaScript中。
答案 0 :(得分:2)
我看到的方式是你有几个选择:
像@morodeer建议您从页面获取输入值。这意味着用户每次访问页面时都必须重新输入这些值。
就像你说的那样,你可以使用Session在PHP会话中临时存储数据。这意味着用户必须在每个会话中输入一次日期。参见示例。
使用JavaScript localdb,您可以在其中存储数据很长一段时间。假设最终用户允许使用localdb。
使用某种后端数据库来存储您的值。这将允许您长时间存储数据并执行数据分析。假设您有一些方法可以唯一地识别用户。
PHP会话示例
<?php session_start(); ?>
$('.HideMe').each(function (i) {
var SetDateOne = <?php echo $_SESSION['dateone']; ?>;
...
});
编辑: PHP会话示例(使用JavaScript函数)
JavaScript函数(js文件)
function doHideMe(dateOne, dateTwo, dateThree) {
$('.HideMe').each(function (i) {
var SetDateOne = dateOne;
var SetDateTwo = dateTwo;
var SetDateThree = dateThree;
...
});
}
页面加载(包含在各个页面中)
<script type="text/javascript">
$(document).ready(function () {
doHideMe(<?php echo $_SESSION["dateOne"]; ?>, <?php echo $_SESSION["dateTwo"]; ?>, <?php echo $_SESSION["dateThree"]; ?>);
});
</script>