使用PHP提交html表单以显示"谢谢你"同一div中的邮件

时间:2017-03-31 20:41:33

标签: php html forum

我正在尝试使用php创建一个简单的论坛来发送内容。一旦用户点击提交,我希望div显示一条感谢信息。

目前通过尝试让php使用if else语句编写html代码来解决这个问题。似乎if语句有效,但else语句显示为文本。

这是我的代码:

<?php
if(isset($_POST['submit'])) {
        echo "<form method="post" action="">
        <div class="field half first">
        <label for="name">Name</label>
        <input type="text" name="name" id="name" />
        </div>  
        <div class="field half">    
        <label for="email">Email</label>        
        <input type="text" name="email" id="email" />       
        </div>
        <div class="field">
        <label for="message">Message</label>
        <textarea name="message" id="message" rows="5"></textarea>      
        </div>      
        <input class="button submit" type="submit" name="submit" value="Submit">    
        </form>";       

} else {
    $email_to = "field25farming@gmail.com";
    $email_subject = "Field 25 Contact Form";
    echo "Thanks! We'll get back to you soon."; 
} 
?>

如果您愿意,可以在此处查看页面底部的问题:http://field25.com/

我也可以通过其他方式实现这一目标,谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

感到惊讶的是,它完全呈现了什么!有几个问题。首先,您有嵌套的双引号。其次,您要检查submit是否存在,如果存在,则呈现表单。如果它必须首先存在,它将永远不会被渲染。

完全可以通过简单地退出PHP来避免第一个问题。第二个问题可以通过submit运算符检查! 是否存在(或翻转if / else输出)来解决。

<?php
// if submit is not set, we want to render the form.
if( !isset($_POST['submit']) ) { ?>

<!-- leave PHPlandia -->

<form method="post" action="">
  <div class="field half first">
    <label for="name">Name</label>
    <input type="text" name="name" id="name" />
  </div>
  <div class="field half">
    <label for="email">Email</label>
    <input type="text" name="email" id="email" />
  </div>
  <div class="field">
    <label for="message">Message</label>
    <textarea name="message" id="message" rows="5"></textarea>
  </div>
  <input class="button submit" type="submit" name="submit" value="Submit">
  </form>
<?php
} else {
    $email_to = "field25farming@gmail.com";
    $email_subject = "Field 25 Contact Form";

    // ... rest of your email sending code here ...

    echo "Thanks! We'll get back to you soon.";
}

?>