【问题标题】:Stop from jumping to top of page停止跳转到页面顶部
【发布时间】:2013-03-27 08:53:01
【问题描述】:

当我点击一个链接时,有什么方法可以防止页面停止跳转到页面顶部,我的链接看起来像这样:

 echo "<a href=\"$_SERVER[PHP_SELF]?action=remove&key=$nameskey\">Remove</a>";

当我想从列表中删除条目时单击此链接,

我只使用 PHP。

谢谢

【问题讨论】:

  • 你需要查找一个叫做 AJAX 的东西。

标签: php hyperlink href


【解决方案1】:

您可以在链接中使用 ajax 或命名锚点,以便在用户重新加载页面时返回页面。

命名主播:HTML Anchors with 'name' or 'id'?

Ajax 方法(许多选项之一):http://api.jquery.com/jQuery.ajax/

【讨论】:

    【解决方案2】:

    立即删除此代码。 This post 给出了一个原因。 GET 请求永远不应该修改服务器上的任何内容,尤其是不要删除。

    相反,您应该考虑使用 AJAX。例如:

    echo "<a href=\"javascript:remove(this,'".$nameskey."');\">Remove</a>";
    

    还有:

    <script type="text/javascript">
        function remove(link,key) {
            var a = new XMLHttpRequest();
            a.open("POST","delete.php",true);
            a.onreadystatechange = function() {
                if( this.readyState == 4 && this.status == 200) {
                    // assuming the link is a direct child of the element to be removed
                    link.parentNode.parentNode.removeChild(link.parentNode);
                }
            };
            a.send("action=remove&key="+key);
        }
    </script>
    

    【讨论】:

    • 问题不在于 GET 请求的固有性质,问题在于缺乏安全性和输入/用户验证。
    • 我没有删除服务器上的任何内容我只是列出了一些名称的示例,当我确定我的列表完整时(删除或添加)我提交我的列表。当然我的列表来自数据库。
    猜你喜欢
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多