Анализ значений из URL-адреса

#javascript #php

Вопрос:

Я пытаюсь передать некоторые переменные js в файл php, чтобы в конечном итоге заполнить скрытые поля в форме гравитации. Я смог передать значения(числа) через URL-адрес, но они указаны в строке в URL-адресе. Как я могу получить их в виде отдельных числовых значений? Или есть лучший способ передать их на php? Вот как выглядит URL-адрес:

 http://XXXXXXX/lead-results?data=50.00,8.80
 

Сейчас это немного выходит за рамки моих навыков, так что любые советы будут приветствоваться!
Вот мой файл js:

   let form = document.getElementById("form");
  let volume = document.getElementById("volume");
  let denied = document.getElementById("denied");
  let charges = document.getElementById("charges");
  let rate = document.querySelector(".rate");
  let recoverable = document.querySelector(".recoverable");
  let message_1 = document.querySelector(".msg1");


  function sendData(dataToSend) {
    let data = dataToSend;
    window.location.href = "lead-results?data="   data;
  }

  form.onsubmit = function (e) {
    e.preventDefault();

    let a = volume.value;
    let b = denied.value;
    let c = charges.value;
    let curDenialRate = parseFloat((b / a) * 100);
    c = parseFloat(c * 0.4);
    let d = rate;
    let f = recoverable;
    let messages = document.querySelectorAll(".msg");

    d.innerHTML = "";
    f.innerHTML = "";
    messages.forEach((message) => {
      message.innerHTML = "";
    });

    function formatNumber(num) {
      let formattedNum = num.toFixed(2);
      return formattedNum;
    }


    if (curDenialRate < 4) {
      d.append("Current Denial Rate: "   formatNumber(curDenialRate)   "%");
      f.append("Recoverable Dollars: "   formatNumber(c));
      message_1.append("good work");
    } else {
        
      sendData([formatNumber(curDenialRate),formatNumber(c)]);
      console.log(curDenialRate, c);
    }

    form.reset();

    return false;
  };
};
 

Комментарии:

1. Указаны ли нужные вам числа в data параме строки запроса? Если да, то вы можете просто разделить его запятой, и ваши значения будут в массиве. Если вам просто нужны числа, приведите строки в числа с помощью цикла.

2. Да, это так! Как это сделать в php? Это всего лишь одна длинная строка, если я повторю ее эхом. Я пробовал использовать метод explode (), но это все равно дает мне только одну строку.

3. Я делаю следующее: if (isset($_GET['data'])) { $data = explode(',', $_GET['data']); } затем, делая print_r($data); это, я получаю Array ( [0] => 50.00 [1] => 8.80 )

4. Вы можете получить к ним доступ, как к любому другому массиву: $data[0] или $data[1]

5. Это прекрасно! Спасибо! Если вы хотите ответить этим комментарием, я могу проверить его как ответ.

Ответ №1:

Вы можете извлечь значения из URL-адреса с $_GET помощью списка, разделенного запятыми, и, поскольку он представляет собой список, разделенный запятыми, вы можете разделить значения с помощью разнесения. Вот что я сделал:

     if (isset($_GET['data'])) {
        $data = explode(',', $_GET['data']);
        print_r($data); //Array ( [0] => 50.00 [1] => 8.80 )
    }