【问题标题】:Save cookie when button is pressed按下按钮时保存 cookie
【发布时间】:2016-05-19 10:44:07
【问题描述】:

我有这个代码

<script>
    function saver(page) {
        document.cookie = 'page='+page;
        <? $_SESSION['pagina'] = $_COOKIE['page']; ?>
        return null;
    }
</script>

我想在此处按下按钮时执行它

<div class="xmenu">
    <div class="parent2">
    <div class="test1"><a href="pics/categories.png"><img src="pics/categories.png"></a></i></div>
    <div class="test2"><a href="pics/user.png"><img src="pics/user.png"></a></i></div>
    <div class="test3"><a href="pics/bookmarks.png"><img src="pics/bookmarks.png"></a></i></div>
    <div class="test4"><a href="pics/search.png"><img src="pics/search.png"></a></i></div>
    <div class="test5"><a href="../../../HOME/demo[ENTRA%20QUI]/new%20%201.html"><img src="pics/home.png"></a></i></div>
    <div class="test6"><a href="javascript:saver();" onClick="saver()"><img src="pics/backup.png"></a></i></div> <--- here the button
    <div class="mask2"><img src="pics/etor.jpg"></a></i></div>
    </div>
</div>

函数在头部。 “页面”变量(在 javascript 中)......好吧,我不知道在哪里定义,但我看到它在菜单之后使用(在正文中)。 有人可以帮我吗?

【问题讨论】:

  • 还有什么问题? (除非你没有将任何值传递给saver() 并命名为onclick onClick)?
  • 您似乎将服务器端与客户端脚本混淆了。我建议您阅读更多内容以帮助澄清一些概念。

标签: javascript php cookies


【解决方案1】:

用你的代码是不可能的。因为当你的页面将被加载时,这段代码:

<script>
    function saver(page) {
        document.cookie = 'page='+page;
        <? $_SESSION['pagina'] = $_COOKIE['page']; ?>
        return null;
    }
</script>

将被渲染一次,它看起来像这样:

<script>
    function saver(page) {
        document.cookie = 'page='+page;
        return null;
    }
</script>

当用户点击将调用 saver() 函数时,您的服务器不会收到任何数据。为此,您必须使用 ajax(例如来自 jQuery)。

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
    function saver(page) {
        document.cookie = 'page='+page;
        return null;

        $.ajax({

            url: 'http://example.com/your_script.php',
            method: 'get',
            success: function(response) {

                alert(response);
            }
        });
    }
</script>

your_script.php

<?
    $_SESSION['pagina'] = $_COOKIE['page'];

    return 'ok';
?>

【讨论】:

  • 它不起作用:/警报没有出现,似乎变量没有通过。
【解决方案2】:

我会使用以下内容。一个非常简单的表单,带有一个按钮和一个在 PHP 中设置 cookie 的函数。

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Set the cookie
    setcookie("TestCookie", "SomethingSomethingSomething", time()+3600);  /* expire in 1 hour */
}
?>
<form method="POST" action="<?= $_SERVER['PHP_SELF']; ?>">
    <button type="submit">Create that cookie already!!!</button>
</form>">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多