为什么我的PHP代码的一行会干扰下一行? (意外的标识符错误)

时间:2017-07-12 03:01:45

标签: php

我有以下AJAX代码:

<script type='text/javascript'>
$(document).ready(function () {
    $('.questionform').on('submit', function(e) {
        e.preventDefault();
        $.ajax({  
            url :  "aplaygroundajaxtest.php",
            type: "POST",
            data: $(this).serialize(),
            success: function (data) {        
  <?php
print_r($QuestionTypePercent);  
          if($QuestionTypePercent < 100){?>
                alert("Alert Message OnClick"); 
                <?php } ?>

            },
        });
    });
});
</script>

在来源中,

print_r($QuestionTypePercent);  
          if($QuestionTypePercent < 100){?>
                alert("Alert Message OnClick"); 
                <?php } ?>

显示为14 alert("Alert Message OnClick");,我收到错误&#34; Uncaught SyntaxError:Unexpected identifier&#34;在那条线上。

当我删除print_r($QuestionTypePercent);时,问题就解决了。

为什么print_r($QuestionTypePercent);会干扰&#34;如果&#34;在它之后的条件,我该如何解决这个问题?似乎我需要在两条线之间进行某种中断,但我不确定如何实现这一点。

2 个答案:

答案 0 :(得分:1)

$QuestionTypePercent的值为14。输出14 alert("Alert Message OnClick");不是有效的JavaScript。

如果您想输出百分比值以进行调试或其他事情,我建议您将其包含在注释中,或将其移至警报中。

E.g。

<?php if ($QuestionTypePercent < 100): ?>
    alert('Alert Message onClick: <?= $QuestionTypePercent ?>');
<?php endif ?>

另请注意alternative control syntax的使用。如果您正在嵌入PHP,HTML和JS,这将有助于使您的代码更具可读性。

答案 1 :(得分:0)

只需将print_r包含在内:

echo "/*";
print_r($QuestionTypePercent);
echo "*/";