我想在点击时改变按钮的颜色和文本,当页面是refreshed.Here时,当点击设置状态时,它不应该更改。当我再次点击它时,它将文本更改为已确认,并将颜色更改为绿色,当我再次单击它时,它会将颜色更改为红色,文本更改为pending.Now,它应该将颜色更改为绿色,文本应该更改为已确认,这里的颜色和文本都不是changed.And,这在页面刷新时应该保持不变。以下是代码:
<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>
发布于 2016-02-20 02:43:37
HTTP是无状态协议,我们不能在HTTP调用之间维护状态以获得更多信息look at this answer
因此,您必须通过其他机制保存下一次所需的数据(在您的情况下是按钮颜色),如查询字符串、Cookies或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'].'">'
COOKIES和会话
您还可以使用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文档。
https://stackoverflow.com/questions/35521918
复制相似问题