相关疑难解决方法(0)

通过AJAX发布的布尔变量在服务器端被视为字符串

以下是向会话购物车添加类和包的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)

php ajax jquery boolean post-processing

35
推荐指数
3
解决办法
3万
查看次数

无法使用jQuery AJAX将null传递给服务器.在服务器上收到的值是字符串"null"

我正在转换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值.

另请注意,在第二种方法中,$ …

ajax null jquery

16
推荐指数
3
解决办法
2万
查看次数

使用 $.ajax 向 PHP 发送布尔值

我使用 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}. 我该如何实现?

php jquery json

5
推荐指数
1
解决办法
1572
查看次数

标签 统计

jquery ×3

ajax ×2

php ×2

boolean ×1

json ×1

null ×1

post-processing ×1