В настоящее время я работаю с чем-то вроде ниже, но у меня есть проблемы с синтаксисом в назначении всех моих данных sessionStorage переменной и передачи этого через мой PHP:
var exampleValueOne = "Value A";
var exampleValueTwo = 2;
var exampleValueThree = "Value XYZ";
//Example value from my HTML modal where multiple of the same 'users' may be captured
var dropDownValue = $('#aDropDown').find('option:selected').attr('value');
//Some assignments
sessionStorage.setItem("valueA", exampleValueOne );
sessionStorage.setItem("valueB", exampleValueTwo );
sessionStorage.setItem("valueC", exampleValueThree );
//Need to be able to assign an indeterminate amount of valueD key value pairs
if (sessionStorage.getItem("valueD1") === null) {
var countNumber = 1;
sessionStorage.setItem("valueE", countNumber);
for (var i = 0; i < countNumber; i++){
sessionStorage.setItem("valueD"+[countNumber], dropDownValue);
}
} else {
//if at least one valueD exists it means we need to add after the last one
var countNumber = parseInt(sessionStorage.getItem("valueE"));
//update the count
sessionStorage.setItem("valueE", (countNumber + 1));
for (var i = countNumber; i < (countNumber + 1); i++){
sessionStorage.setItem("valueD"+[countNumber], dropDownValue);
}
}
sessionStorage должен выглядеть следующим образом:
значение A: «Значение A»
значение B: «2»
valueC: «Значение XYZ»
Предполагая, что два значения были сохранены с использованием цикла for, они будут сохранены как
например (значения 8 и 2 — просто случайные значения атрибутов примера со стороны html):значение D1: «8»
значение D2: «2»
//NOW I would like to pass these values to my PHP using Ajax
var data = {
/*ALL SESSION STORAGE ITEMS?*/
};
$.ajax({
type: "POST",
url: "myPHP.php",
data: data,
success: function(){
return false;
}
});
Вы можете использовать length
собственность и key(i)
метод, чтобы получить все ключи, которые используются в sessionStorage. с помощью этих ключей вы можете получить значения, как обычно
sessionStorage.setItem("valueA", '1' );
sessionStorage.setItem("valueB", '2' );
sessionStorage.setItem("valueC", '3' );
//Create data object so we can submit it to the server
var data = {};
for(var len = sessionStorage.length, i = 0; i < len; i++) {
var key = sessionStorage.key(i);
data[key] = sessionStorage.getItem(key);
}
console.log(data);
//From this point you can post the `data` to your server side
$.ajax({ type: "POST", url: "myPHP.php", data: data });
Других решений пока нет …