我想在单击时更改按钮颜色和文本,并且在刷新页面时它不应该更改


i want to change button color and text onclick and it should not change when page is refreshed

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

<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 是无状态协议我们无法维护 HTTP 调用之间的状态有关更多信息,请查看此答案

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

查询字符串

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

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 来保存您的 BTN 颜色

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

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

会话可以通过以下方式使用

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

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