0

这听起来可能很奇怪,但我希望有一个按钮,其链接在用户单击时不会打开:

<a href="http://mysite.nl/test.php?value=snow"> click</a>

我想这样做是因为这个链接有 PHP 值来重新创建页面。该按钮以新的背景颜色打开。

我不能只使用

document.body.style.backgroundColor='Snow'

因为页面会自动重新加载,即使页面重新加载,我也希望颜色保持“雪色”。

这可以做到吗?有没有更好的方法通过单击按钮来永久更改样式?

4

5 回答 5

2

您可以为此使用 php SESSION

$_SESSION['color']='snow';

并在每次重新加载时从会话中获取值。并使用 preventDefault() 通过使用 javascript 来防止链接重定向

于 2013-05-28T15:47:10.560 回答
0

如果您希望它对用户永久存在,则应将其存储在数据库中。你应该通过调用你的服务器来做到这一点。您可以为此使用 ajax。使用 jquery 的 ajax 功能真的很容易。

http://api.jquery.com/jQuery.ajax/

您应该使用 ajax 发布到您的服务器并更改数据库中的背景颜色。如果您不想刷新页面,则应使用 javascript 更改背景颜色。

同样,jQuery 让这变得非常简单...... $('element').css('background-color','color');

于 2013-05-28T15:54:40.987 回答
0

您是否尝试创建一个简单的< button onclick='javascript:myfunction(); 返回错误;' >测试</按钮>

然后你在'myFunction()'中实现你想要的

于 2013-05-28T16:22:30.273 回答
0

您可以使用本地存储。

以隐藏字段颜色分配值。只需在 url 中传递颜色http://mysite.nl/test.php?value=red

HTML

 <form>
      <a id="change-bg" href="#"> click</a>
      <input type="hidden" name="color" value="<?=(!empty($_GET['value']) ? $_GET['value'] : '')?>"/>
    </form>

查询

<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(function() {
        if (typeof(Storage)!=="undefined" && typeof localStorage.bgColour !== 'undefined' ) {
            $('body').css({'background' : localStorage.bgColour});
        }
        $('#change-bg').click(function(){
            $('body').css({'background' : $('[name="color"]').val()})
            localStorage.bgColour = $('[name="color"]').val();
            return false;
        });
    });
</script>
于 2013-05-28T16:23:10.643 回答
0

我建议使用隐藏字段并将背景作为值,然后使用 javascript 获取隐藏字段的值

于 2013-05-28T15:50:13.420 回答