以下是向会话购物车添加类和包的AJAX功能的一部分: -
jquery部分
function addClassToCart(itemId)
{
addItemToCart(itemId,true);
}
function addPackToCart(itemId)
{
addItemToCart(itemId,false);
}
function addItemToCart(itemId,isClass)
{
$.post(url+"/ajax/add_cart", { operation: 'add_cart','isClass':isClass, 'itemId': itemId},
function(data)
{
if(data.success)
{
alert("item added to cart");
}
}, "json");
}
Run Code Online (Sandbox Code Playgroud)
AJAX请求处理php部分 -
//Checking operation and other posted parameters
if($_POST['isClass'])
{
//Code to add class to session cart
}
else
{
//Code to add pack to session cart
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是
无论我是否传递true/false(通过调用addClassToCart()和addPackToCart()),总是会向会话购物车添加类的代码执行.
如果我把echo语句放在那里: -
if($_POST['isClass'])
{
echo "see if condition ".$_POST['isClass'];
}
else
{
echo "see else condition …Run Code Online (Sandbox Code Playgroud) 我正在转换javascript/php/ajax应用程序以使用jQuery来确保与Firefox以外的浏览器兼容.
我使用jQuery的ajax函数传递true,false和null值时遇到问题.
Javascript代码:
$.ajax
(
{
url : <server_url>,
dataType: 'json',
type : 'POST',
success : receiveAjaxMessage,
data:
{
valueTrue : true,
valueFalse: false,
valueNull : null
}
}
);
Run Code Online (Sandbox Code Playgroud)
PHP代码:
var_dump($_POST);
Run Code Online (Sandbox Code Playgroud)
服务器输出:
array(3) {
["valueTrue"]=>
string(4) "true"
["valueFalse"]=>
string(5) "false"
["valueNull"]=>
string(4) "null"
}
Run Code Online (Sandbox Code Playgroud)
问题是null,true和false值正在转换为字符串.
当前使用的Javascript AJAX代码正确传递null,true和false,但仅适用于Firefox.
有谁知道如何使用jQuery解决这个问题?
下面是一些工作代码(不使用jQuery)与上面给出的不工作代码进行比较.
Javascript代码:
ajaxPort.send
(
<server_url>,
{
valueTrue : true,
valueFalse: false,
valueNull : null
}
);
Run Code Online (Sandbox Code Playgroud)
PHP代码:
var_dump(json_decode(file_get_contents('php://input'), true));
Run Code Online (Sandbox Code Playgroud)
服务器输出:
array(3) {
["valueTrue"]=>
bool(true)
["valueFalse"]=>
bool(false)
["valueNull"]=>
NULL
}
Run Code Online (Sandbox Code Playgroud)
请注意,正确接收null,true和false值.
另请注意,在第二种方法中,$ …
我使用 jQuery 将数据发布到 PHP 后端$.ajax:
$.ajax({
url: "server.php",
method: "post",
data: {
testVariable: true
}
});
Run Code Online (Sandbox Code Playgroud)
在服务器端,我尝试die(gettype($_POST["testVariable"]));返回string.
我正在尝试将从 Javascript 发布的 JSON 数据保存到 MySQL 数据库,但布尔值被引用,这不应该发生。
插入的是{"testVariable": "true"}什么,我需要的是{"testVariable": true}. 我该如何实现?