我在Greasemonkey中遇到表单问题。 我想发送一个布尔值usign GM_xmlhttpRequest,但是如果我发送:
GM_xmlhttpRequest({
method: "POST",
url: "http://localhost/test.php",
data: "confirm=true",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response) {
console.log(response.responseText);
}
});
测试php:
var_dump( $_POST );
在控制台我看到:
array(1){[“confirm”] => string(4)“true”}
我该如何解决这个问题?
答案 0 :(得分:1)
只需在服务器端将值转换为布尔值 - 您已经拥有该值。
您可以直接$myVar = $_POST["confirm"] === "true";
或使用带有filter_var
标记的FILTER_VALIDATE_BOOLEAN
来涵盖更多选项:
$myVar = filter_var($_POST["confirm"], FILTER_VALIDATE_BOOLEAN);
- 这可以让您涵盖true
,TRUE
,on
,yes
等等 - 所有内容都被解释为布尔true
答案 1 :(得分:0)
由于您以 JSON 格式发送数据,因此您需要做的就是对类似于以下内容的 post 值进行解码:
$var = json_decode($_POST['some_param']);
这样你就会得到正确的类型。