这是一个简单的问题:
如何为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';
当有人在我的表单上按下提交时,错误将显示在一个单独的页面上,我希望在弹出窗口中显示。 提前谢谢
答案 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块,如果你的表单包含错误并且你想显示那个弹出窗口。