不保存对页面的更改(在页面重新加载)

时间:2017-09-30 22:14:54

标签: javascript php jquery html css

<div class='wrapper one Stone' id='main'>
<h1>Stone</h1>
<p>Price: $130.00 per Yard</p>
 <?php if($_SESSION[id]) {?> 
<button class="Stonebutton"> Delete Stone</button>
<script>; $(".Stonebutton").click(function(){$(".Stone").remove();}); </script> 
 <?php } ?> 
</div>

当我登录时,我可以看到&#34;删除石头&#34;按钮,当我点击它,它消失但当我重新加载页面它回来了。有帮助吗?非常感谢!我还使用以下单独的php文件将其加载到html页面中:

fwrite($PlantFile, "\n\n<div class='wrapper one $trimmedname' id='main'>\n<h1>$name</h1>\n<p>Price: $price</p>\n <?php if(\$_SESSION[id]) {?> \n<button class=\"$trimmedbname\"> Delete $name</button>\n<script> \$(\".$trimmedbname\").click(function(){\$(\".$trimmedname\").remove();}); </script> \n <?php } ?> \n</div>\n");

fclose($PlantFile);

如果有人有更好的解决方法,我会全力以赴。谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

为了正确理解这一点,您需要了解网页的生命周期。

  1. 浏览器向服务器发出请求。
  2. 服务器响应该请求。从大量可能的响应中,我们假设一切正常,并通过网页(状态代码:200)进行响应。大多数时候(我们将在这里考虑的情况),响应是HTML。
  3. 排除所有可能出错的内容,服务器将始终为同一请求返回相同的结果。但是,有时候,这还不够,以及我们使用JavaScript的地方。使用JavaScript,我们可以对返回的HTML进行更改,而无需告诉服务器:创建一个包含此mod的新页面。

    .remove()是一种JavaScript方法。它在返回后更改HTML。它会删除作为初始响应一部分的HTML元素,而不会返回到服务器并在请求期间删除首先生成该元素的代码。

    这意味着当您刷新页面时页面将再次包含该元素,因为您正在执行相同的请求(您将返回到步骤1)。

    如果网络按照您的预期方式运行,任何人都可以打开控制台并使用一行简单的代码删除整个网站:

    document.body.remove();
    

    幸运的是,这就是网络的运作方式。