Onclick背景颜色更改并保存在数据库中
Posted
技术标签:
【中文标题】Onclick背景颜色更改并保存在数据库中【英文标题】:Onclick background color change and save in database 【发布时间】:2019-02-07 12:56:17 【问题描述】:我有一行包含账单字段。如果账单已支付,管理员将按下“已支付”按钮。结果将改变该行的整个背景颜色,并且该颜色将保存在数据库中。现在的问题是我应该如何在数据库中保存该行的背景颜色。
这是更改背景颜色但不保存在数据库中的代码。
function mark_complete(i)
if(confirm('Are you sure you want to proceed with this action?'))
$('tr').click(function ()
if(this.style.background == "" || this.style.background =="white")
$(this).css('background', 'yellow');
else
$(this).css('background', 'white');
);
【问题讨论】:
SO 社区不是为您编写代码的。展示你的努力并用你迄今为止尝试过的方法更新你的答案?? @iNullPointer 我提到了我的代码,它正在改变该行的背景颜色,现在我很困惑我应该如何保存在数据库中并使该颜色永久化,即使 url 再次重新加载。 好的,现在有什么问题 您必须保存到数据库中的标志应该是布尔值的paid
,而不是字符串的background-color
。
正如 Chaska 所提到的,在您的数据库中,您应该为每一行提供一个状态...诸如“已付款”、“已完成”、“已计费”等...当您显示您的行时,您只需根据行的状态向您的行添加一个 CSS 类。永远不要将颜色保存在数据库中。那是糟糕的架构。颜色应该在 CSS 中使用类进行管理。想象一下,如果您要将“付费”从红色更改为深红色……您必须更新所有数据库以更改颜色。
【参考方案1】:
假设您使用 php 作为服务器语言。 首先,我们将创建 ajax 函数来调用 PHP 脚本。 您将创建一个文件以将您的值插入到您的数据库中。我将它命名为例如 addColor.php
function mark_complete(i)
if(confirm('Are you sure you want to proceed with this action?'))
$('tr').click(function ()
if(this.style.background == "" || this.style.background =="white")
$(this).css('background', 'yellow');
$.ajax(
type: "POST",
url: 'addColor.php',
data: color:'yellow',
success: function (data)
console.log(data);
,
);
else
$(this).css('background', 'white');
$.ajax(
type: "POST",
url: 'addColor.php',
data: color:'white',
success: function (data)
console.log(data);
,
);
);
addColor.php
if(isset($_POST['color']))
$color = $_POST['color'];
$con = new mysqli($db_hostname, $db_username, $db_password, $db_databasename);
$stmt = $con->prepare("UPDATE `color_tbl` SET `color` = ?");
$stmt->bind_param("s", $color);
$stmt->execute();
$stmt->close();
希望对您有所帮助并给您一些想法
【讨论】:
以上是关于Onclick背景颜色更改并保存在数据库中的主要内容,如果未能解决你的问题,请参考以下文章
如何在卡片内的按钮上进行 onclick 事件:更改卡片背景颜色、按钮背景和文本颜色以及文本内容