У меня есть такая кнопка:

<button class="buttons" onclick="window.location='page_test.php?VAR=1&VAR2=2'">BUTTON 1</button>
<button class="buttons" onclick="window.location='page_test.php?VAR=1&VAR2=2'">BUTTON 2</button>

Как я могу использовать код javascript, чтобы добавить &VAR3=3 в onclick, чтобы иметь:

<button class="buttons" onclick="window.location='page_test.php?VAR=1&VAR2=2&VAR3=3'">BUTTON 1</button>
<button class="buttons" onclick="window.location='page_test.php?VAR=1&VAR2=2&VAR3=3'">BUTTON 2</button>
0
bob dylan 27 Окт 2019 в 16:05
Есть ли конкретная причина, по которой вы изменяете URL-адрес из внешнего интерфейса, а не из внутреннего интерфейса?
 – 
Fahmi
27 Окт 2019 в 16:21

2 ответа

Предполагая, что текущий URL-адрес, по которому пользователь переходит, - "page_test.php?VAR=1&VAR2=2", тогда этот код добавит &VAR3=3 к URL-адресу:

HTML:

<button class="buttons" onclick="insertParam('VAR3', '3')">BUTTON 1</button>

JS:

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('=');
    }

    document.location.search = kvp.join('&'); 
}
0
Max Voisard 27 Окт 2019 в 16:16

HTML:

Как и Макс Вуазар, предполагая, что текущий URL, по которому пользователь переходит, - "page_test.php?VAR=1&VAR2=2", я попытаюсь сделать это немного проще.

<button class="buttons" onclick="insertParam('VAR3', '3')">BUTTON 1</button>

JS:

function insertParam(key, value)
{
  key   = encodeURI(key); 
  value = encodeURI(value);
  return window.location.href + `&${ key }=${ value }` 
}
0
Chema 27 Окт 2019 в 23:57