【问题标题】:How to submit all sessionStorage content to PHP server如何将所有 sessionStorage 内容提交到 PHP 服务器
【发布时间】:2017-01-25 14:53:43
【问题描述】:

我目前正在使用类似下面的东西,但是在将我的所有 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;
                }
                });

【问题讨论】:

  • 看起来不错。祝你好运。如果您在此过程中有任何问题,请告诉我们。
  • @MagnusEriksson 谢谢,但不确定如何从语法的角度传递我的所有 sessionStorage 内容?如何将 sessionStorage 放入 var 数据中?
  • 将您的实际问题添加到您的帖子中......而不是作为评论。请阅读:How to create a Minimal, Complete, and Verifiable exampleHow do I ask a good question?
  • 道歉@MagnusEriksson 我太着迷于在stackoverflow网站上以一种清晰的逻辑方式格式化我的代码,以至于我忘了问清楚我的问题!
  • 问题在标题中有点定义哈哈,只需在标题前面加上“如何”;)

标签: javascript php html web-storage


【解决方案1】:

您可以使用length 属性和key(i) 方法来获取会话存储中使用的所有密钥。使用这些键,您可以像正常一样检索值

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

【讨论】:

  • 非常感谢@SanderVisser 的回复我现在正在测试这个,但完全有道理,很快就会标记为正确答案等。
猜你喜欢
  • 1970-01-01
  • 2014-04-17
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 2021-12-19
相关资源
最近更新 更多