PHP中的弹出窗口?

时间:2013-03-27 13:04:02

标签: php popupwindow

这是一个简单的问题:

如何为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 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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%正确但原则是相同的。

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

答案 2 :(得分: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块中,但是为了基本参考,我认为这符合我们在评论框中的对话。

此脚本将执行的操作是处理每个post元素,并相应地执行操作,例如:

    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,则发现错误。然后脚本将打印出错误。

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

答案 3 :(得分:0)

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

所以你应该通过PHP输出一个特定的JS块,如果你的表单包含错误并且你想显示那个弹出窗口。