PHP Javascript未捕获语法错误:意外标记非法
我有这个PHP脚本,它不能正常工作。错在哪里PHP Javascript未捕获语法错误:意外标记非法,php,jquery,Php,Jquery,我有这个PHP脚本,它不能正常工作。错在哪里 <?php if ( isset($success) || isset($failure) ) { ?> <script> $(document).ready(function(){ $('div.aler').css('display','block'); $("div.aler").html("<?php if($success){echo '<p class=\"suc
<?php
if ( isset($success) || isset($failure) ) {
?>
<script>
$(document).ready(function(){
$('div.aler').css('display','block');
$("div.aler").html("<?php if($success){echo '<p class=\"success\">'.$success.'</p>';} elseif($failure) {echo '<p class=\"failure\">'.$failure.'</p>';}; ?>");
setTimeout(function(){
$("div.aler").fadeOut("slow", function (){
$("div.aler").remove();
});
}, 5000);
});
</script>
<?php }
包含消息,但JavaScript不会将其放入HTML div中:
div.aler
我在Chrome控制台中收到以下错误消息:
未捕获的语法错误:意外标记非法
您正试图将其放入div.alert…但在您的代码中编写的“div.aler”缺少一个T…php输出不会转义为“,因此您必须使用\\\”或\' 顺便说一句,将json_编码为字符串会更好
$("div.aler").html(<?php
if($success){
echo json_encode('<p class="success">'.$success.'</p>');
}
elseif($failure){
echo json_encode('<p class="failure">'.$failure.'</p>');
};?>
);
$(“div.aler”).html(您忘了在下面的行中设置isset
,这是必需的,因为您在第一个if语句中使用了“| |”(OR),
php抛出一个错误,这将破坏您的javascript
$("div.aler").html( "<?php if( $success ){ echo '<p class=\"success\">'.$success.'</p>';}elseif($failure){echo '<p class=\"failure\">'.$failure.'</p>';}; ?>");
$(“div.aler”).html(“”);
将此更改为
$("div.aler").html( "<?php echo ( isset( $success ) ) ? '<p class=\"success\">'.$success.'</p>' : '<p class=\"failure\">'.$failure.'</p>'; ?>");
$(“div.aler”).html(“”);
$(“div.aler”).html(“”);
当然,在输出之前转义$success
和$failure
。您必须对引号进行双重编码,\\“
,以便结果包含JavaScript字符串的\”
。查看生成的HTML,您将看到。尝试像这样转义PHP中的任何“
\\“
看看这有什么作用。或者将它们改为单引号”
。或者甚至是\”
@FelixKling,它不会将任何内容放入div,因此我无法使用html源代码进行检查。但我将尝试使用双引号编码。Thanks@FelixKling我对进行了双重编码。“
s但没有任何变化啊,也别忘了转义成功或失败消息的引号,请使用“addslashes”,这显然取决于错误的服务器设置。(显示错误等)投了赞成票,因为我收到了未定义的变量错误消息,但之后我声明了变量。不知道不调试这样的东西是可能的…@Arash问题在于你的复制粘贴技能,而不是这段代码。(我在发布之前测试过。)
$("div.aler").html( "<?php echo ( isset( $success ) ) ? '<p class=\"success\">'.$success.'</p>' : '<p class=\"failure\">'.$failure.'</p>'; ?>");
$("div.aler").html("<p class='<?=$success? 'success' : 'failure'?>'><?=$success? $success : $failure?></p>");