2

这是一个快速的问题:

如何在 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';

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

4

4 回答 4

5

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

于 2013-03-27T13:05:25.207 回答
5

对于弹出式 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%正确,但原理是一样的。

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

于 2013-03-27T13:08:27.347 回答
1

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

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

于 2013-03-27T13:05:42.167 回答
1
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,则发现错误。然后脚本将打印出错误。

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

于 2013-03-27T13:29:30.030 回答