从 sessionStorage 读取并使用 jquery 发送到 php 时删除引号

Remove quotes when reading from sessionStorage and sending to php using jquery

我在较长的过程中将不同的值存储在 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 sessionstorage 截图)

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

我试过你的代码(使用 Firefox 和 Chrome)和

echo $_POST['imgb'];

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

sessionStorage.setItem("img_b_id", 100);

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

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