Php 停止浏览器询问用户是否要刷新页面

Php 停止浏览器询问用户是否要刷新页面,php,html,css,Php,Html,Css,我有一个功能,用户从下拉列表中选择一个页码,然后将结果提交到同一个页面,这样无论选择什么都可以保持选中状态,并且可以正常工作,但是如果用户尝试刷新页面,它会询问用户是否要重新提交表单 有没有办法阻止浏览器询问用户是否要刷新页面 function select($pages,$location) { echo "<form method='POST' action='$location'>"; echo "<select name='select' onchan

我有一个功能,用户从下拉列表中选择一个页码,然后将结果提交到同一个页面,这样无论选择什么都可以保持选中状态,并且可以正常工作,但是如果用户尝试刷新页面,它会询问用户是否要重新提交表单

有没有办法阻止浏览器询问用户是否要刷新页面

function select($pages,$location) {

    echo "<form method='POST' action='$location'>";
    echo "<select name='select' onchange='this.form.submit()'>";

    while ($tempCount < $pages) {
        $tempCount++;

        if ($_POST['select'] != null && $_POST['select'] == $tempCount) {
        $selected = "selected"; 
    }
    else {
        $selected = null;
    }

    echo "<option $selected value='$tempCount'>Page $tempCount</option>";

    }

    echo "</select>";
    echo "</form>";

    }
}
功能选择($pages,$location){
回声“;
回声“;
而($tempCount<$pages){
$tempCount++;
如果($\u POST['select']!=null&&$\u POST['select']==$tempCount){
$selected=“selected”;
}
否则{
$selected=null;
}
echo“Page$tempCount”;
}
回声“;
回声“;
}
}

三种可能的解决方案

  • 使用GET而不是POST。浏览器不会提示用户获取

  • 使用POST,但将数据发布到从不呈现的中间(“中间”)页面(甚至只是http处理程序)。中间人应处理发布的数据,然后重定向到显示给用户的真实页面。因为每个重定向都是GET,刷新最后一页不会触发提示

  • 不要使用GET或POST。相反,使用AJAX在幕后更新您需要的内容


  • 三种可能的解决办法

  • 使用GET而不是POST。浏览器不会提示用户获取

  • 使用POST,但将数据发布到从不呈现的中间(“中间”)页面(甚至只是http处理程序)。中间人应处理发布的数据,然后重定向到显示给用户的真实页面。因为每个重定向都是GET,刷新最后一页不会触发提示

  • 不要使用GET或POST。相反,使用AJAX在幕后更新您需要的内容


  • 三种可能的解决办法

  • 使用GET而不是POST。浏览器不会提示用户获取

  • 使用POST,但将数据发布到从不呈现的中间(“中间”)页面(甚至只是http处理程序)。中间人应处理发布的数据,然后重定向到显示给用户的真实页面。因为每个重定向都是GET,刷新最后一页不会触发提示

  • 不要使用GET或POST。相反,使用AJAX在幕后更新您需要的内容


  • 三种可能的解决办法

  • 使用GET而不是POST。浏览器不会提示用户获取

  • 使用POST,但将数据发布到从不呈现的中间(“中间”)页面(甚至只是http处理程序)。中间人应处理发布的数据,然后重定向到显示给用户的真实页面。因为每个重定向都是GET,刷新最后一页不会触发提示

  • 不要使用GET或POST。相反,使用AJAX在幕后更新您需要的内容


  • 如果您不必使用POST,您可以使用评论中建议的GET表单。但是解决这个问题的通常方法是应用这个模式。不幸的是,这意味着您必须手动传递数据


    另一种不易上当的方法是监听F5键,然后在Javascript中执行
    window.location=window.location
    。分配将导致页面在没有任何警告的情况下重新加载,但如果用户在浏览器中按下刷新按钮,则该页面将不起作用。

    如果您不必使用POST,则可以使用注释中建议的GET表单。但是解决这个问题的通常方法是应用这个模式。不幸的是,这意味着您必须手动传递数据


    另一种不易上当的方法是监听F5键,然后在Javascript中执行
    window.location=window.location
    。分配将导致页面在没有任何警告的情况下重新加载,但如果用户在浏览器中按下刷新按钮,则该页面将不起作用。

    如果您不必使用POST,则可以使用注释中建议的GET表单。但是解决这个问题的通常方法是应用这个模式。不幸的是,这意味着您必须手动传递数据


    另一种不易上当的方法是监听F5键,然后在Javascript中执行
    window.location=window.location
    。分配将导致页面在没有任何警告的情况下重新加载,但如果用户在浏览器中按下刷新按钮,则该页面将不起作用。

    如果您不必使用POST,则可以使用注释中建议的GET表单。但是解决这个问题的通常方法是应用这个模式。不幸的是,这意味着您必须手动传递数据


    另一种不易上当的方法是监听F5键,然后在Javascript中执行
    window.location=window.location
    。分配将导致页面在没有任何警告的情况下重新加载,但如果用户按下浏览器中的“刷新”按钮,则该操作不起作用。

    可能会有所帮助:我认为它与浏览器相关,询问用户是否要重新提交表单。这意味着浏览器会看到您的最后一页是一个POST请求,因此如果您要刷新,那么这意味着您再次发送POST详细信息,因此您会得到弹出窗口。绕过它的一种方法是使用重定向,就像Jacob Gray在链接中提到的那样。So标题(位置:……);另一种方法是远离post并使用get,通过执行@Verkade89与post和get有什么显著区别吗?@Verkade89非常好地回答了使用get方法的问题。它很有魅力;P@frosty很难在评论中详细说明,但HTTP调用的形式非常不同。GET和大多数其他方法(你很少看到)都像是“告诉我最新的股票价格”。POST像是“这是一个新的股票购买”