感谢您的时间和知识!
所以这是我的问题,我试图用AJAX发布多个字符串,而不是仅在一个数据集中序列化它们。我想这样做是因为我在服务器端的php会对它们做出个别的反应。
这是服务器端:
<?php
$subjectPrefix = '[Contact via le Site]';
$emailTo = 'kokolesinge@gmail.com';
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = stripslashes(trim($_POST['form-name']));
$email = stripslashes(trim($_POST['form-email']));
$subject = stripslashes(trim($_POST['form-subject']));
$message = stripslashes(trim($_POST['form-message']));
$pattern = '/[\r\n]|Content-Type:|Bcc:|Cc:/i';
if (preg_match($pattern, $name) || preg_match($pattern, $email) || preg_match($pattern, $subject)) {
die("Header injection detected");
}
$emailIsValid = preg_match('/^[^0-9][A-z0-9._%+-]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $email);
if($name && $email && $emailIsValid && $subject && $message){
$subject = "$subjectPrefix $subject";
$body = "Nom: $name <br /> Email: $email <br /> Message: $message";
$headers = 'MIME-Version: 1.1' . PHP_EOL;
$headers .= 'Content-type: text/html; charset=utf-8' . PHP_EOL;
$headers .= "From: $name <$email>" . PHP_EOL;
$headers .= "Return-Path: $emailTo" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "X-Mailer: PHP/". phpversion() . PHP_EOL;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;
} else {
$hasError = true;
}
}
?>
&#13;
因此,您看到我要查看的4个变量是表单名称,表单电子邮件,表单主题,表单邮件。这些字符串来自以下形式:
<div id="contact" class="contact">
<div class="container">
<?php if(!empty($emailSent)): ?>
<div class="col-md-6 col-md-offset-3">
<div class="alert alert-success text-center">Votre message a ete envoye avec succes.</div>
</div>
<?php else: ?>
<?php if(!empty($hasError)): ?>
<div class="col-md-5 col-md-offset-4">
<div class="alert alert-danger text-center">Un erreur s'est produite, essayer a nouveau.</div>
</div>
<?php endif; ?>
<div class="col-md-6 col-md-offset-3">
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" id="contact-form" class="form-horizontal" role="form" method="post">
<input type="text" name="form-name" placeholder="Nom" />
<input type="email" name="form-email" placeholder="Email" />
<input type="text" name="form-subject" placeholder="Objet" />
<div class="clearfix"></div>
<textarea rows="3" name="form-message" placeholder="Message" /></textarea>
<div class="sub">
<button id="envoyer" type="button" class="btn btn-default">Envoyer</button>
</div>
</form>
</div>
<?php endif; ?>
</div>
</div>
&#13;
所以我的问题是我想从我的表单中捕获那些4变量,使用AJAX发布它们然后接收它们。现在我只是想在一个警告框中显示这个参数,但它不起作用,我只能用这个JQuery脚本显示它们序列化:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(function(){
$("#envoyer").click(function(){
alert($('#contact-form').serialize());
/*
$.ajax({
type: "POST",
url: 'index.php',
data: {form-name : form-name, form-email : form-email, form-subject : form-subject, form-message : form-message}
success: function(data)
{
alert("success!");
}
});
*/
});
});
</script>
&#13;
所以这个最后一个片段是我需要帮助的片段,我希望能够从我的表单中捕获这些参数,现在只需将它们显示在一个警告框中(我可以用AJAX发布它们,displayig他们是确保它运作良好的第一步。
再次感谢您的时间,我希望我已经清楚了解我的问题,谢谢! :)