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

<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 к щелчку мыши, чтобы иметь:

<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

2 ответа

< Сильный > 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 }` 
}

Если предположить, что текущий 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('&'); 
}
58579675