Javascript中的错误消息

Javascript中的错误消息,javascript,Javascript,我有一个PHP代码: if($billing_total>$limit_to_send){ echo '<script type="text/javascript"> window.onload = function() { alert("Sorry, you do not have enough credit"); } </script>'; if($billing\u total>$limit\u to\u send){

我有一个PHP代码:

  if($billing_total>$limit_to_send){

    echo '<script type="text/javascript">
    window.onload = function() {
    alert("Sorry, you do not have enough credit");
 }
   </script>';
if($billing\u total>$limit\u to\u send){
回声'
window.onload=函数(){
警告(“对不起,您没有足够的信用”);
}
';
当我打印此消息时,它将打印在PHP页面的开头,如下所示:

  <script type="text/javascript">
                window.onload = function() {
                alert("Sorry, you do not have enough credit");
             }
               </script>

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        -----------------------------------------------------------

window.onload=函数(){
警告(“对不起,您没有足够的信用”);
}
-----------------------------------------------------------
这导致浏览器中“我的页面”的页眉(徽标)向下移动一行

页面看起来会很糟糕,因为那里的所有项目都会下移一行

我希望你能明白,有什么解决办法吗

===========================================================================

谢谢大家

解决方案:

$alert_message=<script type="text/javascript">
    window.onload = function() {
    alert("Sorry, you do not have enough credit");
 }
   </script>
$alert\u消息=
window.onload=函数(){
警告(“对不起,您没有足够的信用”);
}

$alert_message
打印到
正文前HTML代码的某个位置
标记^ ^ ^ ^

或者将
die()
附加到if代码块中,或者让php将脚本打印到正文或头部的某个位置。

或者将
die()附加到
输入if代码块,或者让您的php将脚本打印到正文或头部的某个位置。

确保在脚本之前从未输出任何内容

有关更多信息,请参阅

doctype声明必须是html页面的第一个元素,它是由浏览器决定如何处理其余html代码的元素。在此之前输出任何内容都可能会将浏览器放入,因此您无法确定浏览器将如何呈现页面


如何避免这种情况

当到达
echo
命令行时,该命令将被执行,并且您的html代码的其余部分似乎在这之后

你也可以

  • 将HTMLDTD和标题移动到php的顶部(但有时这是不可能的)或

  • 将错误html存储在一个变量中,因此不要使用
    echo',而要确保在错误发生之前不输出任何内容

    有关更多信息,请参阅

    doctype声明必须是html页面的第一个元素,它是由浏览器决定如何处理其余html代码的元素。在此之前输出任何内容都可能会将浏览器放入,因此您无法确定浏览器将如何呈现页面


    如何避免这种情况

    当到达
    echo
    命令行时,该命令将被执行,并且您的html代码的其余部分似乎在这之后

    你也可以

    • 将HTMLDTD和标题移动到php的顶部(但有时这是不可能的)或

    • 将错误html存储在一个变量中,因此这不是
      echo',而是显示了应用程序的糟糕设计。我建议您将其更改为:

      $errors = array();
      if($billing_total>$limit_to_send){
        $errors[] = 'Sorry, you do not have enough credit'; 
      }
      
      然后在HTML文件上,在
      标记关闭之前,读取数组并显示任何错误

      <?php if(is_array($errors)): ?>
        <script type="text/javascript">
         <?php foreach($errors as $error): ?>         
              alert('<?php echo $error; ?>');
         <?php endforeach; ?>
        </script>
      <?php endif; ?>
      
      
      警报(“”);
      
      这表明您的应用程序设计不好。我建议您将其更改为:

      $errors = array();
      if($billing_total>$limit_to_send){
        $errors[] = 'Sorry, you do not have enough credit'; 
      }
      
      然后在HTML文件上,在
      标记关闭之前,读取数组并显示任何错误

      <?php if(is_array($errors)): ?>
        <script type="text/javascript">
         <?php foreach($errors as $error): ?>         
              alert('<?php echo $error; ?>');
         <?php endforeach; ?>
        </script>
      <?php endif; ?>
      
      
      警报(“”);
      
      尝试将其移动到
      标记中。我只是在用PHP打印,如何控制HTML页面中的打印位置?缺少一个右括号。所有输出都是在脚本中的某个位置生成的,或者是它的父/子脚本(包括)。您必须将代码段移动到不同的上下文中,以便将其放置在适当的位置,或者将输出存储在某个位置,以便稍后将其写入输出。看起来您使用的是某个PHP框架,其中必须使用框架方法返回文本。请尝试将其移动到
      标记中,我只是p在PHP中打印,如何控制HTML页面中的打印位置?缺少一个右括号。所有输出都是在脚本或其父/子脚本(包括)中的某个位置生成的。您必须将代码段移动到不同的上下文中,使其位于适当的位置,或者将输出存储在某个位置,以便以后可以将其写入输出。看起来您使用的是某种PHP框架,其中必须使用frameworks方法返回文本。请将PHP代码放在PHP的一部分
      已被回显/打印/显示。在
      被回显/打印/显示后,将php代码放入php的一部分。谢谢Martin,我无法控制javascript代码的打印,它在doctype声明之前出现。知道如何控制吗?谢谢Martin,我已经定义了
      $alert\u消息=window.onload=function(){alert(“对不起,您没有足够的信用”);}“
      并在
      之前的某个地方打印出来谢谢Martin,我无法控制javascript代码的打印,它在doctype声明之前就出现了。知道如何控制吗?谢谢Martin,我已经定义了
      $alert\u message=“window.onload=function(){alert(“对不起,您没有足够的信用”);}“
      并将其打印在