我正在尝试使用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/
我也可以通过其他方式实现这一目标,谢谢你的帮助。
答案 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.";
}
?>