在php或javascript中将参数添加到url后,如何修复刷新页面?

在php或javascript中将参数添加到url后,如何修复刷新页面?,javascript,php,Javascript,Php,我试图用php和javascript刷新页面,但它不能正常工作。 我使用了多种函数和代码,但找不到好的答案。 我使用了下面的javascript代码。 但它会多次刷新,而且不会停止 function insertParam(key, value) { key = encodeURI(key); value = encodeURI(value); var kvp = document.location.search.substr(1).split('&'); var i=kvp.len

我试图用php和javascript刷新页面,但它不能正常工作。 我使用了多种函数和代码,但找不到好的答案。 我使用了下面的javascript代码。 但它会多次刷新,而且不会停止

function insertParam(key, value)
{
key = encodeURI(key); value = encodeURI(value);

var kvp = document.location.search.substr(1).split('&');

var i=kvp.length; var x; while(i--) 
{
    x = kvp[i].split('=');

    if (x[0]==key)
    {
        x[1] = value;
        kvp[i] = x.join('=');
        break;
    }
}

if(i<0) {kvp[kvp.length] = [key,value].join('=');}

//this will reload the page, it's likely better to store this until finished
document.location.search = kvp.join('&'); 
}
但我会将参数添加到url无穷大。 我只想在url中添加一个或两个参数。 我怎样才能修好它?
谢谢。

检查您的
paramName
是否存在,如果没有使用param重新加载:

var paramName = 'param';

var url = new URL(window.location.href);

var searchParams = new URLSearchParams(url.search); 
if (!searchParams.get(paramName)) {
    searchParams.append(paramName, 'value');

    url.search = searchParams.toString();
    window.location.href = url.toString();
}

或者您可以在php中使用
$\u GET
来呈现js代码重新加载或不重新加载。

使用API会使这变得简单得多。检查之前是否存在参数reloading@charlietfl谢谢你的回复。它是怎么工作的?有些人说不是对所有的探险家都有效。
var paramName = 'param';

var url = new URL(window.location.href);

var searchParams = new URLSearchParams(url.search); 
if (!searchParams.get(paramName)) {
    searchParams.append(paramName, 'value');

    url.search = searchParams.toString();
    window.location.href = url.toString();
}