2017-01-25 4 views
2

Сейчас я работаю с чем-то вроде ниже, но у меня возникают проблемы с синтаксисом в присвоении всех моих данных sessionStorage переменной и мимоходом, что до моего PHP:Как представить все содержимое 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 должен выглядеть следующим образом после того, как выше:

: значение а "Value A"

VALUE млрд: "2"

valueC: «Значение XYZ»

Предполагая, что два значения было сохранено с использованием для цикла они были бы сохранить как например (значение 8 и 2 являются лишь случайным примером значений атрибутов из HTML стороны):

valueD1 : "8"

valueD2: "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; 
       } 
       }); 
+1

Выглядит хорошо. Удачи. Сообщите нам, если у вас есть вопрос по пути. –

+0

@MagnusEriksson благодарит, но не уверен, как передать весь мой контент sessionStorage через синтаксическую точку зрения? Как разместить sessionStorage в данных var? – BernardV

+1

Добавить свой вопрос на свой пост ... не как комментарий. Пожалуйста, прочитайте: [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve), а также [Как задать хороший вопрос?] (Http://stackoverflow.com/ help/how-to-ask) –

ответ

2

Вы можете использовать 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 }); 
+0

Большое спасибо за ответ @SanderVisser. Я тестирую это сейчас, но в полной мере буду отмечать как правильный ответ и т. Д. В ближайшее время. – BernardV