【问题标题】:iframe colorbox contact form won't submit and styles won't stay after validationiframe colorbox 联系表单不会提交并且样式在验证后不会保留
【发布时间】:2012-10-25 10:35:02
【问题描述】:

我正在尝试在从 iframe 调用的彩盒(覆盖整个页面)中创建一个联系表单。除了表单无法提交并且我丢失了 css 样式和验证后的所有内容外,我几乎弄清楚了所有事情。我做错什么了?对你的帮助表示感谢。谢谢!!!

这是我到目前为止的代码:

contactform.html

<body>

    <form name="form1" method="post" action="sendmessages.php">    
            <input type="text" name="your_name" class="your-name" id="your-name" placeholder="your name">        
            <input type="text" name="email-address" class="email-address" id="email-address" placeholder="email address">
            <textarea name="comments" class="comments" id="comments" placeholder="type your message here..."></textarea>
            <input type="submit" value="submit" name="submit" class="submit">
    </form>

colorbox-k.css

#colorbox, #cboxOverlay, #cboxWrapper{
    position:absolute; 
    top:0; 
    left:0; 
    z-index:9999; 
    overflow:hidden;
    }
#cboxOverlay{
    position:fixed; 
    width:100%; 
    height:100%;
    }
#cboxContent{
    position: relative;
    overflow:hidden;
    }
#cboxLoadedContent{
    overflow:hidden;
    }
#cboxLoadedContent iframe{
    display:block; 
    position:absolute; 
    width:100%; 
    height:100%; 
    border:0;
    }

#cboxOverlay{background:url(../images/overlay.png) repeat 0 0;}
#colorbox{}
#cboxContent{
    position:fixed; 
    width:536; 
    height:409;
    }
#cboxClose{
    display:block; 
    position:absolute; 
    top:0px; 
    left:0px; 
    background:url(../images/close.png) no-repeat 0 0;
    width:31px; 
    height:31px; 
    padding: 0px;
    border: 0px;
    text-indent:-9999px;
    }
body {
    background: url(../images/envelope.png) center no-repeat;
    display: block;
    position: absolute;
    width: 536px;
    height: 409px;
    z-index:12;
    position: relative;
    margin:auto;
}

input[type=text] {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 10px;
    background-color:rgb(255,255,255);
    color: #787474;
    padding-left: 10px;
    width:194px;
    height:24px;
    position: absolute;
    border-color: #000000;
    border-width:2px;
    border-style:solid;
    }

.comments {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 10px;
    background-color:rgb(255,255,255);
    color: #787474;
    padding: 10px 0 0 10px;
    width:414px;
    height:140px;
    border-color: #000000;
    border-width:2px;
    border-style:solid;
    position: absolute;
    top: 150px;
    left: 54px;
}

.your-name {
    position: absolute;
    top: 104px;
    left: 54px;
}

.email-address {
    position: absolute;
    top: 104px;
    left: 272px;
}

.submit {
    width: 70px;
    height: 24px;
    background: url(../images/send-btn.png) center no-repeat;
    position: absolute;
    top: 338px;
    right: 54px;
    padding: 0px;
    border: 0px;
    text-indent:-9999px;
}

.submit:hover{
    background: url(../images/send-btnr.png);
}

.submit:active{
    background: url(../images/send-btn.png);
}

sendmessages.php

    <?php

    // Comments
    $message="$comments";

    // Mail of sender
    $mail_from="$email-address"; 

    // From 
    $header="from: $your-name <$mail_from>";

    // Enter your email address
    $to ='mail@kitistproduction.com';
    $send_contact=mail($to,$subject,$message,$header);

    // Check, if message sent to your email 
    // display message "Thank you!"
// Check, if message sent to your email 
// display message "Thank you!"
if($send_contact){
echo "<p style='background: url(../images/envelope_sent.png)            center no-repeat;
    display:block;
    position:relative;
    top: -6px;
    left: -6px;
    width:536px;
    height:409px;
    z-index:12;
    margin:auto;
    padding:0px;'></p>";
}
else {
echo "ERROR";
}
    ?>

语法错误

$email-address=$_POST['email-address'];
$your-name=$_POST['your_name'];
$header. = 'Content-type: text/html; charset=iso-8859-1' . "\n";    

$header.="From: " . $your-name <$email-address>."\n";

【问题讨论】:

  • 您没有复制粘贴完整代码,请参阅 $header.=... 到您的代码和 $header=..... 到我的代码中,点“。”的区别

标签: php css forms validation colorbox


【解决方案1】:

您必须在 sendmessages.php 页面上使用以下代码 您使用了 Post 方法,因此您必须使用 $_POST 变量获取数据,如下所示:

更新

$comments=$_POST['comments'];
$email_address=$_POST['email-address'];
$your_name=$_POST['your_name'];

//echo "comments:".$comments."<br>";
//echo "email:".$email_address."<br>";
//echo "name:".$your_name."<br>";
//exit();


// Comments
$message=$comments;


$header='MIME-Version: 1.0'."\n";

$header.='Content-type: text/html; charset=iso-8859-1'."\n";    

$header.="From: " . $your_name."<".$email_address.">"."\n";
$subject="Mail test";
// Enter your email address
$to ='mail@kitistproduction.com';
$send_contact=mail($to,$subject,$message,$header);

【讨论】:

  • @monbee 我认为您必须为“谢谢”页面的不同背景添加 HTML 和 css。对于提交按钮,您只需更新您的 css 类。我已经在这里用 Chrome 上的检查元素进行了测试,你可以试试你的身边。如果没有得到它,那么回到这里我会给你一个提示。
  • 我设法用更新的背景加载了“谢谢”消息(请参阅更新的 .php)。我还在 Chrome 上对其进行了测试,并且由于某种原因显示了“提交”按钮......我现在遇到了另一个问题,因为颜色框在 IE 和 iphone/ipad 中的行为不正确。既然我的原始问题已经得到回答(再次感谢!),我应该将其作为一个新问题发布吗?
猜你喜欢
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
相关资源
最近更新 更多