JavaScript变量不';我不在拉威尔工作
我网站中的所有页面都有相同的标题。我是这样实现的:JavaScript变量不';我不在拉威尔工作,javascript,php,laravel,laravel-4,blade,Javascript,Php,Laravel,Laravel 4,Blade,我网站中的所有页面都有相同的标题。我是这样实现的: extends('layouts.main') return....->with(array( sucessfulMessage => 'asdf' )); 现在,在一些页面中,我需要发送一条成功的消息,而在其他页面中则不需要。我是这样实现的: extends('layouts.main') return....->with(array( sucessfulMessage => 'asdf' )); 请注意,我只
extends('layouts.main')
return....->with(array(
sucessfulMessage => 'asdf'
));
现在,在一些页面中,我需要发送一条成功的消息,而在其他页面中则不需要。我是这样实现的:
extends('layouts.main')
return....->with(array(
sucessfulMessage => 'asdf'
));
请注意,我只是在一些页面中这样做,而不是在所有页面中
现在我想在JavaScript中使用该变量。我在layout.main中这样做了:
<head>
{{ HTML::script('/js/jquery-2.1.1.js')}}
@if(isset($successfulMessage))
<script>
var successfulMessage = "{{$successfulMessage}}";
</script>
@endif
{{ HTML::script('/js/myPopupScript.js')}}
</head>
我的问题
即使已发送成功消息,警报也始终为test
重要提示
当我在Google Chrome中使用F12查看实际的HTML时,我可以看到:
<script>
var successfulMessage = "asdf";
</script>
var successfulMessage=“asdf”;
因此定义了变量。更改这段代码: 编辑: 尝试更改if/else javascript块中的条件
$(document).ready(function() {
@if(isset($successfulMessage))
var successfulMessage = {{$successfulMessage}};
@endif
if( !typeof successfulMessage === 'undefined' ) {
alert("test");
} else {
alert(successfulMessage);
}
});
希望它能起作用:)对我有效的代码是:
$(document).ready(function(){
var typeOfSuccessfulMessage = typeof successfulMessage;
if(typeOfSuccessfulMessage == 'string'){
alert(successfulMessage);
}else{
alert("undefined");
}
});
非常感谢@martinezjc、@lowerends和@Cthulhu
!typeof successfulMessage===='undefined'
=(!(typeof SuccessfullMessage))=='undefined'
false=='undefined'false@Cthulhu无法理解您的评论,您能解释一下吗?只是说如果考虑到正确的运算符优先级,您的条件将永远不会成立。您想要的是successfulMessage的类型!='undefined'@Cthulhu您说得对,因为我试图在条件之前定义变量,但仍然不起作用。这是一个很好的通知,请注意如何解决它?这里真正的问题是,当您尝试访问变量successfulMessage
时,请记住,php首先执行的是服务器端和脚本加载。您的新代码仅在定义变量时工作,但在没有变量的情况下,我收到了以下错误消息:Uncaught ReferenceError:successfulMessage未定义
您的第二个新代码有语法错误,无法在jquery函数中写入@
,我已检查并告诉过您。不能用字母“写”jquery@martinezjc我需要两天时间来接受我自己的回答:)但我真的很感谢你的帮助