javascript - 如何让 Javascript 将通过 AJAX 请求提取的 tinyint(1) 数据视为 boolean 值?

标签 javascript php mysql ajax boolean

我遇到了一个问题,经过几个小时的寻找答案并尝试解决问题后,我无法让它工作。

我的问题。我有一个 MYSQL 数据库。当我通过 PHP 从数据库中提取“boolean ”数据时,一切正常。 PHP 将 1 和 0 的“字符串”解释为 True 和 False。但是,当我检索此数据以使用 Ajax 填充表单时,我遇到了问题。

字符串输出为:{"id":"478","name":"aaaa","manager":"385","usertype":"0","typeone":"0", “typetwo”:“1”,“typethree”:“1”

这样就好了。直到我尝试使用以下数据填充表单:

$.each(data, function (name, val) {
var $el = $('[id="e' + name + '"]'),
    type = $el.attr('type');

switch (type) {
    case 'checkbox':
        $el.filter('[value="' + Boolean(val) + '"]').attr('checked', 'checked');
        break;
    case 'radio':
        $el.filter('[value="' + val + '"]').attr('checked', 'checked');
        break;
    default:
        $el.val(val);
}
});

在此http://jsfiddle.net/z66XF/11/您可以看到,当数据来 self 的数据库并以字符串形式给出“boolean ”值时,用于勾选复选框的数据不起作用。

“0”最终被评估为真。

有什么方法可以转换它或让 javascript 将其视为 boolean 值吗?

最佳答案

您可以使用 Unary Plus Operator将字符串转换为数字

Boolean(+val) 

基本示例:

var one = "1";
var zero = "0";

console.log("one", one, Boolean(+one));  //one "1" true
console.log("zero", zero, Boolean(+zero));  //zero 0 false

JSFiddle:

http://jsfiddle.net/JJRP3/

关于javascript - 如何让 Javascript 将通过 AJAX 请求提取的 tinyint(1) 数据视为 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414637/

相关文章:

javascript - 范围问题/"Undefined is not a function"

php - 如何设计用于文件下载统计的数据库表

php - android json 发布到 php

mysql 压缩 order_by 值

javascript - 使用 Java 脚本自动提交时如何使 PHP 'if' 代码工作?

javascript 和 c++ 双数 0.0

php - 无法登录 Magento 1.8.1 管理员

php - 按邮政编码距离升序计算和排序用户的最快方法(也是最优化的)

php - Google map API 商业搜索

php - 可以使用 Symfony2 中的配置文件设置 PDO::MYSQL_ATTR_LOCAL_INFILE