javascript - 我想更改按钮颜色和 onclick 文本,并且刷新页面时不应更改

标签 javascript php jquery

我想在单击时更改按钮颜色和文本,刷新页面时它不应该更改。在这里,当单击设置状态时,它会将文本更改为已确认,并且颜色更改为绿色,当我再次单击它时,它将颜色更改为红色,文本更改为待处理。现在,当我再次单击它时,它应该将颜色更改为绿色,文本应更改为已确认,这里颜色和文本都不会更改。这应该在页面时保留被刷新了。 这是代码:

<input type="submit" id="<?php echo $orderQuery['id'];?>" value="set status" onclick="setColor('<?php echo $orderQuery['id'];?>')"; />
<script>

var count = 1;

function setColor(btn) {
var property = document.getElementById(btn);

if (count == 0) {property.style.backgroundColor = "#ff0000"
 if (property.value=="confirmed") property.value = "pending";
 }
 else {property.style.backgroundColor = "#7FFF00"
 count = 0;
if (property.value=="set status") property.value = "confirmed";
}

    }
</script>

最佳答案

HTTP 是无状态协议(protocol) 我们无法维护 HTTP 调用之间的状态 了解更多信息look at this answer

因此,您必须通过其他机制(如查询字符串、Cookie 或 session )保存下次需要的数据(在您的情况下按钮颜色)

查询字符串

你可以使用查询字符串来携带你想要保留的信息 喜欢

www.example.com?btnColor=blue

当然,在页面加载时,您可以使用 php 设置颜色,如下所示。

//pseudo code
if(isset($_GET['btnColor']) // for query string
 echo  '<button style="background:'.$_GET['btnColor'].'">'
if(isset($_COOKIE['btnColor']) // for cookie
 echo  '<button style="background:'.$_COOKIE['btnColor'].'">'
if(isset($_SESSION['btnColor']) // for Session based storage
 echo  '<button style="background:'.$_SESSION['btnColor'].'">'

COOKIE 和 session

您还可以使用cookies来保存您的btn颜色

setcookie("color", "red", time() + (86400 * 30), "/"); // 86400 = 1 day
// and you can retrieve the cookie value from


 echo $_COOKIE['color'] // prints red

session 可以通过以下方式使用

//to set the session
$_SESSION['color'] = "red";
// to retrive the data
echo $_SESSION['color'];

Cookie 和 session 的主要优点是它们会在一段时间内保存信息 有关更多信息和详细信息,请查看 php.net 文档。

关于javascript - 我想更改按钮颜色和 onclick 文本,并且刷新页面时不应更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521918/

相关文章:

jquery改变按钮id

jquery - 在 Internet Explorer 8 中加载 html() 后无法使用 jquery 选择元素,Firefox 工作正常

javascript - 滚动时触发圆环图动画

php - 使用 laravel 5.4 session 时出错

php - 从 Laravel 数据库列获取值(value)

jquery - 如何获取 ul 标签中特定 li 的位置?

javascript - nth-child 不处理动态生成的 DOM

javascript - 为什么网格中的行数比列数少一?

javascript - 如何使用 Javascript 在打印时显示不同的 div

javascript - 将很长的变量从 PHP 传递到 Javascript