【发布时间】:2018-10-27 14:16:34
【问题描述】:
我正在尝试使用 ajax 通过 php 发送消息。但我仍然在 url 栏中收到 GET 请求,而不是 POST。网址始终显示在地址栏中。
这是我的表单、jquery 和 php 代码
html 表单:
<form class="form-horizontal contactez">
<!-- Form Name -->
<legend>Laissez-nous un message</legend>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="nom_m"></label>
<div class="col-md-4">
<input id="nom_m" name="nom_m" type="text" placeholder="Nom" class="form-control input-md" class="nom_m">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email_m"></label>
<div class="col-md-4">
<input id="email_m" name="email_m" type="text" placeholder="Email" class="form-control input-md" class="email_m">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="objet"></label>
<div class="col-md-4">
<input id="objet" name="objet" type="text" placeholder="Sujet" class="form-control input-md" class="objet">
</div>
</div>
<!-- Textarea -->
<div class="form-group">
<label class="col-md-4 control-label" for="message"></label>
<div class="col-md-4">
<textarea class="form-control" id="message" name="message" class="message">Message</textarea>
</div>
</div>
<div class="modal-footer d-flex justify-content-center">
<button class="btn btn-indigo submitBtn" type="submit"> Message <i class="fa fa-paper-plane-o ml-1"></i></button>
</div>
</form>
jquery 代码: $(document).ready(function(){
$('.contactez').submit(function(){
var nom_m = $('#nom_m').val();
var email_m = $('#email_m').val();
var message_m = $('#message').val();
var objet_m = $('#objet');
var reg = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
if(nom_m.trim()==''){
$('#nom_m').focus() ;
return false ;
}
else if(email_m.trim()=='')
{
$('#email_m').focus() ;
return false ;
}
else if(objet_m.trim()=='')
{
$('#objet').focus() ;
return false ;
}
else if(message_m.trim()=='')
{
$('#message').focus() ;
return false ;
}
else if(email_m.trim()!='' && !reg.test(email_m))
{
bootbox.alert('Entrer une adresse mail valide');
$('#email_m').focus();
return false;
}
else
{
$.post("submit_message.php",{nom:nom_m,email:email_m,objet:objet_m,message:message_m},function(data){
bootbox.alert('Message envoyé');
});
}
return false ;
});
});
php 代码:
<?php
require "install.php" ;
$nom = htmlspecialchars($_POST['nom']) ;
$email = htmlspecialchars($_POST['email']) ;
$objet = htmlspecialchars($_POST['objet']);
$message = htmlspecialchars($_POST['message']);
if(isset($connection) && !empty($nom) && !empty($email) && !empty($message)){
$to = "name@gmail.com";
//$subject = $objet ;
$headers = "From : ". $email ."\r\n";
$headers .= 'Content-Type: text/HTML; charset=utf-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\r\n";
mail($to,$objet,$message,$headers);
}
?>
我使用 $.post,但是当我使用浏览器检查代码时,我看到请求方法:GET。并且没有加载php文件。
帮帮我。
【问题讨论】:
-
你能不能把edit 中的
<form>变成问题?我怀疑错误是您编写的 JS 未连接到您认为的表单 -
@HPierce 完成了。不知道问题出在哪里