【问题标题】:How do I change the style of database data permanently using jquery?如何使用 jquery 永久更改数据库数据的样式?
【发布时间】:2013-05-04 16:24:34
【问题描述】:

我有一个显示数据库中数据的表。在每一行上,有一个我用 jquery 制作的按钮,可以在单击时划掉该行。但是,当我刷新页面时,划掉的样式不会保留。 jquery 样式更改不是永久性的。有没有办法使这种变化永久化?

$('table').on('click','.dead',function(){

          $(this).parent().siblings().css({textDecoration: 'line-through'});

    });

和php

<?php while($row = $data->fetch_assoc()) { ?>
<tr>

<td><?php echo $row['title']; ?> </td>
<td><?php echo  $row['requester']; ?></td>
<td><?php echo $row['reward']; ?></td>
<td><?php echo $row['qual']; ?></td>
<td><?php echo $row['time']; ?></td>
<td><?php echo $row['category']; ?></td>
<td><a href="<?php $row['link']; ?>"><button class="btn btn-mini btn-primary" type="button">Do This Hit</button></a></td>
<td><button class="btn btn-danger btn-mini dead" type="button">Dead</button></td>

</tr>
<?php } ?>

【问题讨论】:

  • 您在 .click 事件期间应用该样式,但没有持久性。我不会说这里有一个“正确”的答案。您需要在 cookie、会话变量或数据库本身中设置一个值,以获得某种持久性。
  • 永久不可能。除非您必须为额外字段修改数据库,否则会设置一个标记是或否用于文本装饰,然后在循环使用基于该样式的样式时
  • 划掉的是否表示数据库中有任何内容?
  • 划掉的表示该行中的某些信息已失效或不再有效
  • 您还有更多工作要做,您必须将数据库中的记录设置为标记(可能是 va AJAX)。然后在您的 while 循环中,您需要构建一些将记录 CSS 设置为直通的逻辑。

标签: php jquery database styles


【解决方案1】:

每次请求页面时,您的 html、.js 和 .css 代码都会从服务器中提取。这意味着您通过 .JS 应用的任何样式都将在下次请求页面时被清除,这就是您现在所看到的。

开发人员负责对某种存储标志进行编程,并在 $(document).ready() 上读取它,以便在请求页面并且 dom 准备好时,它会做的第一件事就是检查你的持久化标志,它可以重新应用您样式的当前状态(打开或关闭,或者在您的情况下,直通或无直通)

对于如何持久化该标志有很多选择。你可以设置一个 cookie,你可以使用 Session 存储,你可以使用 LocalStorage,或者你甚至可以在你的数据库中设置一个标志。由您来提供该状态的持久性。

如果您支持现代浏览器,您可以尝试在 localstorage() 中设置一个标志 http://www.jquerysdk.com/api/jQuery.localStorage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多