#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 )
}