【问题标题】:Popup window in PHP? [closed]PHP中的弹出窗口? [关闭]
【发布时间】:2013-03-27 13:04:01
【问题描述】:

这是一个简单的问题:

如何在 php 中为您的错误处理弹出一个窗口? javascript 是做到这一点的唯一方法还是有办法在 PHP 中做到这一点?

我有一个 PHP 文件,其中一行代码如下:

 echo implode('<br />', $errors);

这行代码捕获了来自我的表单的所有错误,如下所示:

 if (strlen($_POST['name'])<3) $errors[] = 'De naam van uw bedrijf moet minstens 3 letters bevatten';
  if (strlen($_POST['number'])<9) $errors[] = 'Uw nummer moet minstens 9 nummers bevatten';
  if (!preg_match($regexp_mail, $_POST['email'])) $errors[] = 'Onjuist E-mailadres';

当有人在我的表单上按下提交时,错误将显示在单独的页面上,我希望在弹出窗口中显示。 提前谢谢你

【问题讨论】:

  • 如果我正在提交您的表单并且我有一个阻止您的网站制作窗口的弹出窗口阻止程序会发生什么?还是我关闭了 JS?
  • 好点,没想到,嗯,关于如何将错误处理保持在同一页面上的任何想法?
  • 通过错误处理?您的意思是报告致命、通知、用户、警告、折旧错误?还是 HTML 表单中的错误未正确填写?
  • 我的意思是表格没有正确填写,就像有人填写了没有@符号的电子邮件地址。一旦按下提交按钮,我的代码就会捕获这些错误并列出错误
  • @jimcavoli 我已经发布了我的答案,我将如何从服务器端脚本执行非常基本的表单验证并在与 HTML 表单相同的页面上显示错误

标签: php popupwindow


【解决方案1】:

对于弹出窗口,javascript 是必需的。把它放在你的标题中:

<script>
function myFunction()
{
alert("I am an alert box!"); // this is the message in ""
}
</script>

这在你的身体里:

<input type="button" onclick="myFunction()" value="Show alert box">

当按下按钮时,会弹出一个框,并在标题中设置消息。

这可以放在任何没有php标签的html或php文件中。

-----编辑-----

要使用 php 显示它,试试这个:

<?php echo '<script>myfunction()</script>'; ?>

可能不是100%正确,但原理是一样的。

要显示不同的消息,您可以创建许多函数,也可以在调用函数时将变量传递给函数。

【讨论】:

  • 谢谢,非常有帮助,不过,我需要我的 PHP 文件中错误处理的回显以显示在警报框中:)
  • 您所要做的就是使用 php 调用函数: echo '';这可能不是 100% 正确,但原理是一样的。
  • 谢谢,问题解决了!
  • @NoLiver92 以供将来参考,将 URL 发布到 w3schools 可能会为您的回答赢得一些反对票。为什么?在这里阅读:www.w3fools.com
  • @DarylGill 谢谢你告诉我,我不知道这个。
【解决方案2】:

您必须使用 JS 打开弹出窗口,虽然您可以使用 PHP 有条件地将其放在页面上,但您必须使用 JavaScript 函数。

【讨论】:

    【解决方案3】:

    PHP 在服务器端运行,因此您必须使用能够显示弹出窗口的客户端技术:JavaScript。

    因此,如果您的表单包含错误并且您想显示该弹出窗口,则应该通过 PHP 输出特定的 JS 块。

    【讨论】:

      【解决方案4】:
      if (isset($_POST['Register']))
          {
              $ErrorArrays = array (); //Empty array for input errors 
      
              $Input_Username = $_POST['Username'];
              $Input_Password = $_POST['Password'];
              $Input_Confirm = $_POST['ConfirmPass'];
              $Input_Email = $_POST['Email'];
      
              if (empty($Input_Username))
              {
                  $ErrorArrays[] = "Username Is Empty";
              }
              if (empty($Input_Password))
              {
                  $ErrorArrays[] = "Password Is Empty";
              }
              if ($Input_Password !== $Input_Confirm)
              {
                  $ErrorArrays[] = "Passwords Do Not Match!";
              }
              if (!filter_var($Input_Email, FILTER_VALIDATE_EMAIL))
              {
                  $ErrorArrays[] = "Incorrect Email Formatting";
              }
      
              if (count($ErrorArrays) == 0)
              {
                  // No Errors
              }
              else
              {
                  foreach ($ErrorArrays AS $Errors)
                  {
                      echo "<font color='red'><b>".$Errors."</font></b><br>";
                  }
              }
          }
      
      ?>
      
          <form method="POST"> 
              Username: <input type='text' name='Username'> <br>
              Password: <input type='password' name='Password'><br>
              Confirm Password: <input type='password' name='ConfirmPass'><br>
              Email: <input type='text' name='Email'> <br><br>
      
              <input type='submit' name='Register' value='Register'>
      
      
          </form> 
      

      这是一个非常基本的 PHP 表单验证。这可以放在try 块中,但作为基本参考,我认为这符合我们在评论框中的对话。

      这个脚本会做的是处理每个帖子元素,并采取相应的行动,例如:

          if (!filter_var($Input_Email, FILTER_VALIDATE_EMAIL))
              {
                  $ErrorArrays[] = "Incorrect Email Formatting";
              }
      

      这将检查:

      如果 $Input_Email 不是有效的电子邮件。如果这不是一个有效的电子邮件,那么一条消息将被添加到一个空数组中。

      再往下看,你会看到:

          if (count($ErrorArrays) == 0)
          {
              // No Errors
          }
          else
          {
              foreach ($ErrorArrays AS $Errors)
              {
                  echo "<font color='red'><b>".$Errors."</font></b><br>";
              }
          }
      

      基本上。如果数组计数不为 0,则发现错误。然后脚本将打印出错误。

      请记住,这是基于我们在评论框中的对话的参考,应该这样使用。

      【讨论】:

      • 是的,我们在同一页面上,只是在 cmets 中有点想念我们的意思。友情提示:在 if 中使用 > 而不是 == 可以让您将控制结构压缩为 if(condition) { foreach(errors{ ...} } 而不是额外的 else 块。在此处进行解释不过。
      • @jimcavoli 知道你从哪里来,但我是基本编码员的一员,所以我需要简化代码,直到他们学习更简单的方法。我为什么不教他们?从他们的错误中吸取教训;习惯不断追随,但是是的。这是你要找的吗?
      • 是的,谢谢,这会让工作做得更好!
      猜你喜欢
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      相关资源
      最近更新 更多