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

2024-01-03

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

}

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
}

奇怪的事情

无论我是否传递 true/false(通过调用 addClassToCart() 和 addPackToCart()),总是执行将类添加到会话购物车的代码。
如果我将 echo 语句放在那里,如下所示:-

    if($_POST['isClass'])
    {
      echo "see if condition ".$_POST['isClass'];
    }
    else
    {
      echo "see else condition ".$_POST['isClass'];
    }

这是输出:-

添加类到购物车()see if condition true
添加包装到购物车()see if condition false

然而,将这样的条件放入 jquery 代码中效果很好:-

function addItemToCart(itemId,isClass)
 {  
     if(isClass)
        alert("is class");
     else
        alert("is pack");
 }

最后,如果我将服务器端代码更改为:-

if($_POST['isClass'] === true)
        {
          echo "see if condition ".$_POST['isClass'];
        }
        else
        {
          echo "see else condition ".$_POST['isClass'];
        }

这些是输出 -

添加类到购物车()see else condition true
添加包装到购物车()see else condition false

那么,为什么这里将布尔变量视为字符串呢?我在发布参数时做错了什么吗?

谢谢, 桑迪潘


您也可以将filter_var函数与过滤器FILTER_VALIDATE_BOOLEAN一起使用。根据php文档它

对于“1”、“true”、“on”和“yes”,返回 TRUE。否则返回 FALSE。如果设置了 FILTER_NULL_ON_FAILURE,则仅对“0”、“false”、“off”、“no”和“”返回 FALSE,对所有非布尔值返回 NULL。

所以接收 POST 参数将如下所示:

$isClass = filter_var($_POST['isClass'], FILTER_VALIDATE_BOOLEAN);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 软删除最佳实践(PHP/MySQL)

    Problem 在处理产品和订单的 Web 应用程序中 我想维护前员工 用户 与他们处理的订单之间的信息和关系 我想维护过时产品和包含这些产品的订单之间的信息和关系 然而 我希望员工能够整理管理界面 例如删除前员工 过时的产品 过时的产品组
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • Chart.js - 使用 mysql 和 php 从数据库获取数据

    我正在尝试将静态数据转换为使用数据库结果 我将使用MySQL and PHP 示例代码 var randomScalingFactor function return Math round Math random 100 var lineC
  • Php Curl HTTP POST REQUEST 使用嵌套键值对设置自定义标头

    如何使用 Curl 在 php 中设置此标头 CustomInfo 元素是数组 嵌套键值对 AuthenticationInfo 元素是数组 嵌套键值对
  • Razor mvc3 + jquery + Url 操作 + 部分视图

    我有一个关于 jQuery Razor 的问题 我想使用 razor 和 Url Action 构建一个 javascript 变量 并且 html 属性将是输入的值 像这样 var d1 d1 val var d2 d2 val var
  • 这里的退货是如何进行的?

    新问题 但是为什么表达式 from n number from firstFactorPtr Factor1 有人可以向我解释一下这是如何工作的吗 返回 因子 1 这将返回到 main 其中 factor 1 为什么 isPrime 返回t
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • WordPress 子主题覆盖父主题包括

    我正在创建 WordPress 子主题 需要覆盖某些小部件模板 我正在尝试使用此方法来覆盖父主题调用 覆盖主题功能的正确方法 http www venutip com content right way override theme fun
  • 一次用 \r\n & \n & \r 分解字符串? [复制]

    这个问题在这里已经有答案了 我想按行分割字符串 但我希望它基于所有主要使用的换行符 n r n r 并返回一个包含每一行的数组 您可以使用正则表达式和preg split http php net preg split反而 lines pr
  • 如何处理致命错误:cURL错误7:无法连接到xxxx端口443

    我有一个连接到第三方 API 的脚本 它是并且应该在 24 7 不间断循环上运行 我在重新启动循环之前在最后使用睡眠 问题是 有时第三方 API 会被拒绝 或者连接会因以下错误而中断 致命错误 未捕获的异常 GuzzleHttp Ring
  • jQuery:将文本区域滚动到给定位置

    我有一个包含很多文本的文本区域
  • iphone jquery 移动闪烁问题

    我在 iPhone 上使用使用 jQuery mobile 开发的应用程序时遇到闪烁问题 我尝试了互联网上提供的几种解决方案 包括 CSS 更改 将过渡设置为 无 甚至在 jquerymobile js 中注释代码 但没有运气 我使用的 J
  • JQuery 菜单图标 RTL

    我正在尝试在阿拉伯语 RTL 页面中使用 jQuery 菜单 我可以将其设为 RTL 但图标应该是ui icon carat 1 w not ui icon carat 1 e 我创建jsfiddle在这里 http jsfiddle ne
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • 如何知道 .keyup() 是否是字符键(jQuery)

    如何知道 keyup 是否是字符键 jQuery input keyup function if key is a character such as a b A b c 5 3 2 etc not enter key or shift o
  • 如何使用 PHP 将字符串按大写字母分解?

    我有一个字符串 CamelCaseString 我想对大写字母进行explode split 或一些更好的方法来将该字符串分解为单个单词 最简单的方法是什么 解决方案更新 此链接指向一个略有不同的问题 但我认为答案通常比本页当前问题的答案更
  • 检查字符串是否编码为 UTF-8

    function seems utf8 str length strlen str for i 0 i lt length i c ord str i if c lt 0x80 n 0 0bbbbbbb elseif c 0xE0 0xC0
  • 轮播滑动(未滑动)事件上的火灾事件,Bootstrap 3

    Bootstrap 2 似乎可以很好地处理幻灯片事件 请参阅这个问题 https stackoverflow com questions 9651466 how to attach slide slid events to the boot
  • 禁用复选框上的输入

    需要在取消选中该复选框时禁用输入 并在选中该复选框时启用它 我的代码是这样的 div class y div
  • 通过 IP 地址限制 Laravel 错误日志

    When debug被设定为true在 Laravel 的app config php有什么方法可以限制结果Whoops包含对某些 IP 地址的堆栈跟踪的错误页面 并且不在该列表中的 IP 显示特定视图 Thanks 没有内置 但是你可能可

随机推荐

  • 表视图中的复选框单元格:用户无法选中它

    我需要使用复选框单元格的帮助 我目前将对象添加到表视图中 看起来没问题 直到我尝试构建和运行程序 但我无法选中该复选框 我目前正在使用一个表格视图 它显示项目运行时 每个项目都有一个复选框 这样我就可以有多个选择 我是 xcode 新手 这
  • 为网站的私人测试版添加安全层的最不显眼的方法是什么?

    假设我有一个 ASP NET 站点 在本例中为 MVC 它使用表单身份验证和典型的会员系统 该网站允许经过身份验证的用户和匿名用户 当我将网站作为私人测试版发布时 我想在应用程序之上添加另一层安全性 例如超级用户的 https superu
  • 组件如何对其子组件进行布局?

    我已经使用 React 几个星期了 所以我还远不 是专家 这就是问题所在 我正在构建一些布局其子组件的组件 这是一个Layout可以这样使用 var SomeComponent React createClass render functi
  • 确定列中 NA 值的数量

    我想数一下有多少个NA数据框列中的值 假设我的数据框被称为df 我正在考虑的列的名称是col 我想出的方法如下 sapply df col function x sum length which is na x 这是一个好的 最有效的方法吗
  • Kendo Grid:在 Angular 中获取小部件实例

    我试图在我的 Angular 控制器中获取 Kendo 网格的实例 因此我可以尝试连接一些事件 并调用方法 我知道这可能不是最佳实践 并且可能应该使用自定义指令 但是根据文档 http docs telerik com kendo ui A
  • 在 Guice 中模仿 Spring 配置文件

    在 Spring 中 如果我想要一组用于生产的对象 另一组用于本地开发 测试 我可以使用 Profile注解来指定不同的类 并通过在启动应用程序时提供系统属性来在它们之间进行切换 Guice 中是否有类似的内容 或者我需要自己手动检查某些属
  • 在 javascript 中访问 ASP HiddenField

    我已经在这里和谷歌搜索了几天 试图找出为什么我无法获取 javascript 中隐藏字段变量的值 访问时 该值返回为未定义 我在 UpdatePanel 中有一个 ASP HiddenField 它是 aspx 网页中自定义用户控件的一部分
  • 使用 Vuelidate 进行条件验证?

    我有一个表单 可以根据参数应用不同的验证action 存储在VUEX存储中 我试试这个 data function const validations sendToProject cardProject required recallToB
  • 如何调整背景颜色的大小并调整其位置?

    我有一个图像 当我将其悬停时 背景颜色会发生变化 但我想更改大小和位置 hoverme hover background color f7b0ee border radius 50 transition initial 0 5s ease
  • 如果没有冲突则自动远程合并

    如果没有冲突 有没有办法让推送自动接受并合并 我知道这是一个不好的做法 但我有一个特殊情况 即外围 git 存储库由机器人更新 如果没有冲突 有没有办法让推送自动接受并合并 推理流程应该颠倒过来 只有在尝试合并之后才能知道不存在冲突 当本地
  • 如何在 HTML 渲染器中对 HTML 内容进行分页

    I have a project where HTML code is converted to a PDF using HTML Renderer The HTML code contains a single table The PDF
  • Python 与 JavaScript 中的 HMAC SHA256

    我想用 JavaScript 重新实现某个用 Python 编写的 API 客户端 我无法复制 HMAC SHA256 签名功能 对于某些键 输出是相同的 但对于某些键 输出是不同的 当密钥在解码其 Base64 表示后由可打印字符组成时
  • Python socket.error: [Errno 111] 连接在 ubuntu 12.04 上被拒绝

    我正在尝试将套接字与 python 一起使用 但我不断收到此错误消息 import socket gt gt gt s socket socket socket AF INET socket SOCK STREAM gt gt gt s c
  • Javascript:检查用户是否通过表单提交或简单的链接单击导航离开

    我需要在用户离开页面时提醒他们一些事情 这可以通过 window onUnload 事件来处理 但我还需要检查用户是否通过提交页面上的表单或单击导航链接来导航离开 我可以使用表单的 onSubmit 事件设置一个标志 然后在 window
  • 在同一个表上使用 join 和 limit 子句删除

    我有一个像这样的 MySql 表 Session Id Subscriber Id Status abc 1234 Started bcd 1235 Started bcd 1235 Finished 仅当后面跟着 已完成 时 我才需要删除
  • 通过环境安全地将密码传递给 subprocess.Popen

    我想安全地向用户询问密码 然后将其传递给 subprocess Popen 以运行需要它的命令 我见过这个question https stackoverflow com questions 52989658 python subproce
  • 向 WinJS.Binding.converter() 函数发送多个参数

    有没有一种方法可以将多个参数发送到WinJS Binding converter 功能 考虑以下数据和输出 contactName Tara Miller mainNumber 555 405 6190 alternateNumber 55
  • toGMTstring() 和 toUTCstring() 有什么区别?

    我正在将数据保存在MongoDB http www mongodb org 服务器来自Node js http nodejs org应用程序 使用Mongoose http mongoosejs com docs api html 考虑以下
  • PHP 命名空间与具有静态函数的类

    我应该使用具有静态函数或命名空间的类来更好地组织规模不断增长的 PHP 项目吗 我有 Java 背景 喜欢使用静态变量 函数 这两个功能完全不同 static 关键字使属性或方法在没有实际类实例的情况下可用 http php net man
  • 通过 AJAX 发布的布尔变量在服务器端被视为字符串

    以下是将类和包添加到会话购物车的 AJAX 功能的一部分 jquery部分 function addClassToCart itemId addItemToCart itemId true function addPackToCart it