Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 窗体上的模态窗口_Php_Html_Css_Email - Fatal编程技术网

Php 窗体上的模态窗口

Php 窗体上的模态窗口,php,html,css,email,Php,Html,Css,Email,当输入被跳过时,是否有办法使模式窗口弹出 例如,如果有人忘记输入他们的电子邮件,我当前的php邮件文件会打开一个空白页面,上面写着“请输入电子邮件”,但我需要一个模式窗口(最好带有图像),该窗口在不离开我的页面的情况下会显示相同的内容 <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <META HTTP-EQUIV="refresh" conte

当输入被跳过时,是否有办法使模式窗口弹出

例如,如果有人忘记输入他们的电子邮件,我当前的php邮件文件会打开一个空白页面,上面写着“请输入电子邮件”,但我需要一个模式窗口(最好带有图像),该窗口在不离开我的页面的情况下会显示相同的内容

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <META HTTP-EQUIV="refresh" content="9;URL=Thankyou.html">
</head>

<?php
    $EmailFrom = "mail@live.com";
    $EmailTo = "mail@live.com";
    $Subject = "REQUEST";

    $Name = check_input($_POST['Name']);
    $Phone = check_input($_POST['Phone']);
    $Email = check_input($_POST['Email'], "Enter a Email");
    $Message = check_input($_POST['Message']);

    if (! preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $Email))
    {
        show_error("E-mail address not valid");
    }

    if ($Email != 'Email')
    {
        $message = "Name: ".$Name;
        $message .= "\n\nEmail: ".$Email;
        $message .= "\n\nPhone: ".$Phone;
        $message .= "\n\nMessage: ".$Message;
        $success = mail($EmailTo, $Subject, $message, "From: <$EmailFrom>");

        if ($success)
        {    
            echo '<META HTTP-EQUIV="Refresh" Content="0; URL=Thankyou.html">';
            exit;
        }
        else
        {
            print ("<b>I'm sorry, there was a technical glitch, please send your email to me@gmysite.com directly.</b>");
        }
    }
    else
    {
        echo "Please fill the required fields, thankyou";
    }

function check_input($data, $problem = '')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);

    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }

    return $data;
}

function show_error($myError)
{
?>
<html>
<body>
    <p>Please correct the following error:</p>
    <strong><?php echo $myError; ?></strong>
</body>
</html>
<?php
    exit();
}
?>


有几种解决办法

最简单的方法是将html5
required
属性添加到所需的表单字段中。不过,这不会给你提供任何图像弹出窗口的选项,只是现代浏览器中的一个警告,即在填写字段之前,用户不能提交表单


要在同一页面上添加全局弹出窗口,需要javascript。提交表单时,只需检查是否有任何必填字段为空,如果有,则显示全局覆盖。不过,您必须自己编写……

HTML5标准包含了一个javascript api来打开和关闭它。但是,跨浏览器尚不支持此操作。您始终可以使用tough,这将允许您在跨浏览器支持对话框元素之前使用它。

您需要使用javascript。到目前为止,您有什么问题?您在哪里遇到了问题?脚本没有问题,工作正常。但是,当有人没有输入他们的电子邮件并点击send时,脚本会打开并离开我的页面,并给出消息“请输入电子邮件”,但我想要的是,如果有人点击send而没有点击email,会弹出一个对话框,只需通过Ajax发送表单,然后检查答案。。。如果答案包含错误,则可以向其发出警报。