【问题标题】:Remove quotes when reading from sessionStorage and sending to php using jquery从 sessionStorage 读取并使用 jquery 发送到 php 时删除引号
【发布时间】:2015-04-25 21:48:35
【问题描述】:

在较长的过程中,我在 sessionStorage 中存储了不同的值。最后,我想读取所有数据并使用 ajax 将其发送到我的 php 后端。问题是 php 似乎采用了包括引号在内的每个值。这是我得到的:

// Reading data from storage
var imgb = sessionStorage.getItem("img_b_id");
....
// perpare data
var oData = {
            imgb: imgb,
            ...
};

// Sending data
$.post( "../php/direct/create.php", oData).done(function(data) {
    if(data==true) {
        window.open("step5.php", "_self");
    } else {
        alert("Error: " + data.toString()); 
    }
});

这工作得很好。但是,php 将读取 imbg with 引号的值。示例:

echo $_POST['imgb'];
/* Returns "asd" instead of asd

下图显示我的数据存储时不带引号(chrome sessiontorage screenshot)

您对如何解决这个问题有什么建议吗?我目前替换了引号,但我很想从根本上解决这个问题......

【问题讨论】:

  • 为什么不将数据存储/发送为 JSON 字符串?
  • 应该 imgb: imbg 是 imgb: imgb?
  • 当然是的 - sry imbg = imgb 在实际代码中。我应该如何以及为什么将其作为 json 字符串发送?如前所述,实际数据更多,包括许多重定向、页面链接等。我唯一的问题是引号

标签: javascript php jquery sessionstorage


【解决方案1】:

我已经尝试过您的代码(使用 Firefox 和 Chrome)并且

echo $_POST['imgb'];

打印不带引号的字符串。 考虑一下,即使您在会话存储中设置了一个数字,例如

sessionStorage.setItem("img_b_id", 100);

PHP 以字符串形式在服务器接收该值,因此您可以使用 PHP 函数 intval()、floatval() 等对其进行转换。

http://php.net/manual/en/function.intval.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 2020-02-29
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多