我在较长的过程中在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 的值。例如:
echo $_POST['imgb'];
/* Returns "asd" instead of asd
下图显示我的数据存储时没有引号(chrome sessionstorage screenshot)
您对如何解决此问题有任何建议吗?我目前正在替换引号,但我很乐意解决这个问题的根源......
答案 0 :(得分:1)
我已尝试过您的代码(使用Firefox和Chrome)和
echo $_POST['imgb'];
不带引号打印字符串。 考虑即使您在会话存储中设置了一个数字,例如
sessionStorage.setItem("img_b_id", 100);
该值在服务器上由PHP作为字符串接收,因此您可以使用PHP函数intval(),floatval()等转换它。