【发布时间】:2026-02-21 07:05:01
【问题描述】:
在我的个人作品集网页上,我有一个联系表格,是在朋友的帮助下用 PHP 制作的(在 PHP 方面我是个傻瓜。)
虽然我有一个问题。每当按下提交按钮并发送邮件时,都会重新加载页面。我该如何解决这个问题?
我已经复制(并更改了个人资料)我的所有表格,因为我不知道在哪里更改或更改什么:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $commentErr = $subject = "";
$name = $email = $comment = $subject = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid e-mail format"; }
}
if (empty($_POST["subject"])) {
$subjectErr = "Subject is required";
} else {
$subject = input($_POST["subject"]);
}
if (empty($_POST["comment"])) {
$commentErr = "Comment is required";
} else {
$comment = input($_POST["comment"]);
}
}
// MailGun cURL API //
$curl_post_data=array(
'from' => "$name <$email>",
'to' => 'my@mail.com',
'subject' => $subject,
'text' => $comment,
);
$service_url = 'mailgunlink.com';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "api:key-123456789123456789abc");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$curl_response = curl_exec($curl);
$response = json_decode($curl_response);
curl_close($curl);
// trim //
function input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<section id="kontaktformular">
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<div class="row" id="kontakt">
<div class="six columns">
<label>Full Name <span class="error">*<?php echo $nameErr;?></span></label>
<input class="u-full-width" type="text" placeholder="Peter" name="name" id="navn">
</div>
<div class="six columns">
<label>Your Email <span class="error">*<?php echo $emailErr;?></span></label>
<input class="u-full-width" type="email" placeholder="Peter@Example.com" name="email" id="email">
</div>
<label>Subject <span class="error">*<?php echo $subjectErr;?></span></label>
<input class="u-full-width" type="text" placeholder="Design" name="subject" id="subject">
<label>Message <span class="error">*<?php echo $commentErr;?></span></label>
<textarea class="u-full-width" placeholder="Whatever..." name="comment" id="besked"></textarea>
</label>
<input class="button-primary change" type="submit" value="Send">
</div>
</form>
</section>
我希望 sn-p 就足够了,即使它看起来像这样凌乱。 如果您需要更多信息,请随时对我大喊大叫。
另外,奖金问题。我还需要提交按钮来隐藏表单(显示:无;-> #kontaktformular)并显示另一个 div(显示:块;-> #feedbackmsg)
提前致谢!第一个问题最重要!
【问题讨论】:
-
AJAX? 这就是要走的路!
-
试过 Ajax 吗?
-
谢谢大家,我一直在关注api.jquery.com/jQuery.ajax,但又一次——我在 PHP 方面真的是个傻瓜,在 jQuery 方面只是一个初学者。不过还是谢谢。
-
(抱歉英语不好)你需要先阅读 ajax 教程...
标签: javascript php jquery forms curl