Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将php true或false值分配给JS var_Javascript_Php - Fatal编程技术网

Javascript 将php true或false值分配给JS var

Javascript 将php true或false值分配给JS var,javascript,php,Javascript,Php,即使在研究之后,我也不知道为什么var是“未定义的”,因此不能正确地作为布尔值计算 我甚至已经厌倦了将其作为字符串进行评估——tcr_user=='true',但没有成功 除了正确/错误的评估之外,其他一切都正常。有人能解释为什么吗 $('.edit_product_link').addEvent('click',function(e) { if(!validateUser(this.id)) { if(e) e.stop(); alert('<?p

即使在研究之后,我也不知道为什么var是“未定义的”,因此不能正确地作为布尔值计算

我甚至已经厌倦了将其作为字符串进行评估——tcr_user=='true',但没有成功

除了正确/错误的评估之外,其他一切都正常。有人能解释为什么吗

$('.edit_product_link').addEvent('click',function(e) {
    if(!validateUser(this.id)) {
        if(e) e.stop();
        alert('<?php echo $objLanguage->GetText('__confirm_deny_edit__')  . '\n' .  $objLanguage->GetText('__confirm_deny_contact_admin__'); ?>');  
    };
});

function validateUser(lister_id) {
    var user_id =  <?php echo json_encode($_SESSION['user_id']); ?>;
    var company_admin_id = <?php echo json_encode($_SESSION['company_admin_id']); ?>;
    var tcr_user = <?php if(isset($_SESSION['superadmin'])) { echo json_encode($_SESSION['superadmin']);}; ?>;

    console.log(tcr_user.type );   // undefined 

    if(user_id == lister_id || user_id == company_admin_id || tcr_user) {
        return true;        
    } else {
        return false;
    }
}
$('.edit_product_link')。添加事件('click',函数(e){
如果(!validateUser(this.id)){
如果(e)e.停止();
警报(“”);
};
});
函数validateUser(列表器id){
var user_id=;
var公司_管理_id=;
var tcr_user=;
console.log(tcr_user.type);//未定义
if(user_id==lister_id | | user_id==company_admin_id | tcr_user){
返回true;
}否则{
返回false;
}
}
JavaScript变量没有类型属性。 如果使用未定义的someVar执行someVar.type。它将得到以下错误:

var i = undefined;
i.type // TypeError: Cannot read property 'type' of undefined
如果使用已定义的someVar执行someVar.type。它将被取消定义:

var i = true;
i.type // undefined
您需要用javascript解析json,或者php只是回显json字符串

var javascriptData = JSON.parse(<?php echo $phpData; ?>);
var javascriptData=JSON.parse();

正如@Brad所说,在任何情况下,您都应该为变量tcr\u user赋值:

function validateUser(lister_id) {
    var user_id =  <?php echo json_encode($_SESSION['user_id']); ?>;
    var company_admin_id = <?php echo json_encode($_SESSION['company_admin_id']); ?>;
    var tcr_user = <?php if(isset($_SESSION['superadmin'])) { echo json_encode($_SESSION['superadmin']);} else echo false; ?>;

    console.log(typeof tcr_user );   // use typeof to detect the type of variable

    if(user_id == lister_id || user_id == company_admin_id || tcr_user) {
        return true;        
    } else {
        return false;
    }
}
函数validateUser(列表器id){
var user_id=;
var公司_管理_id=;
var tcr_user=;
console.log(typeof tcr_user);//使用typeof检测变量的类型
if(user_id==lister_id | | user_id==company_admin_id | tcr_user){
返回true;
}否则{
返回false;
}
}

echo json_encode($_SESSION['superadmin'])显示了什么?您可能有一行代码是syas
var tcr_user=。如果您要使用
If
语句,请将其环绕在
var
周围。谢谢您,Pravat-json_encode和json.parse()都返回布尔值true(或false)。布拉德是绝对正确的-在精疲力竭的简短中,我省略了失败错误。感谢你们的经验和时间回顾。“.typeof”仍然返回“undefined”-对我来说是个谜,甚至试图明确地声明它。幸运的是,由于您没有检测到任何错误,它告诉我去别处看看——一个写得不好(而且无效)的安全特性(没有控制台错误)被照亮了。疲惫的眼睛错过了细节。。。谢谢大家。属性不是var构造的一个特性,它只是将一个名称绑定(或重新绑定)到一个值。如果我们执行:
Object.prototype.type=function(){return typeof this;}所有对象都将有一个类型属性。@AluanHaddad将定义一个方法,而不是一个普通属性,您必须使用
.type()
调用它。可以使用defineProperty使其成为普通属性:
Object.defineProperty(Object.prototype,'type',{get:function(){return typeof this;}}})。但是,
.type
的这种实现并不总是准确的:
[].type//返回“object”
@UselessCode如果您是正确的,我没有实现属性,而是实现方法。然而,我应该知道,JavaScript中的
typeof数组
返回的
“object”
被烘焙到语言的类型系统中。因此,
typeof null
还返回
“object”
。。。