4

我有这个 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=\"success\">'.$success.'</p>';} elseif($failure) {echo '<p class=\"failure\">'.$failure.'</p>';}; ?>");
        setTimeout(function(){
            $("div.aler").fadeOut("slow", function (){
                $("div.aler").remove();
            });
        }, 5000);
    });
</script>
<?php }  

我认为引号一定有问题:

" . $failure

有消息,但 JavaScript 没有把它放在 HTML div 中:

div.aler

我在 Chrome 控制台中收到此错误消息:

Uncaught SyntaxError: Unexpected token ILLEGAL

4

4 回答 4

6

php 输出不会为“转义”,因此您必须使用 \\\" 或 \' 而不是 \"。

顺便说一句 json_encode 作为字符串会好得多......

$("div.aler").html(<?php
    if($success){
        echo json_encode('<p class="success">'.$success.'</p>');
    }
    elseif($failure){
        echo json_encode('<p class="failure">'.$failure.'</p>');
    };?>
);
于 2013-06-22T17:53:23.557 回答
2

您忘记isset了下面的行,因为您使用“||”所以它是必需的 (或)在你的第一个 if 语句中,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( "<?php echo ( isset( $success ) ) ? '<p class=\"success\">'.$success.'</p>' : '<p class=\"failure\">'.$failure.'</p>'; ?>");
于 2013-06-22T17:55:29.930 回答
1

您正试图将其放入 div.alert...但是在您编写的代码中,您编写了“div.aler”,但您缺少一个 T...

于 2013-06-22T17:51:54.137 回答
0
$("div.aler").html("<p class='<?=$success? 'success' : 'failure'?>'><?=$success? $success : $failure?></p>");

当然还有转义$success$failure输出之前。

于 2013-06-22T17:55:57.833 回答