AJAX接触形式不发送POST数据到PHP
问题描述:
我做了一个HTML表单宽度AJAX:AJAX接触形式不发送POST数据到PHP
function confirmSendMail() {
$(".send_contact").click(function(event){
event.preventDefault();
var nome = $("#inputName").val();
var email = $("#inputEmail").val();
var telefono = $("#inputTelefono").val();
var messaggio = $("#message").val();
$.ajax({
type: "POST",
url: "send.php",
data: "nome=" + nome + "&email=" + email + "&telefono=" + telefono + "&messaggio=" + messaggio,
success: function(msg) {
alert('messaggio inviato!')
},
error: function() {
alert("Si e' verificato un errore imprevisto...");
}
});
return false;
});
}
警报确认我的邮件被发送出去,PHP引擎发送电子邮件...但它是空的,因为POST不发送数据到PHP:
<?php
require 'PHPMailer-master/class.phpmailer.php';
$mail = new PHPMailer;
$nome = $_POST['inputName'];
$email = $_POST['inputEmail'];
$telefono = $_POST['inputTelefono'];
$messaggio = $_POST['message'];
$mail->From = $email;
$mail->FromName = $email;
$mail->AddAddress('[email protected]'); // Add a recipient
$mail->WordWrap = 50; // Set word wrap to 50 characters
/* $mail->AddAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->AddAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name */
$mail->IsHTML(true); // Set email format to HTML
$mail->Subject = 'email dal form acfmavvocati.it';
$mail->Body = 'nome: ' . $nome . '<br /><br />email: ' . $email . '<br /><br />telefono: ' . $telefono . '<br /><br />messaggio: ' . $messaggio;
/* $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; */
if($mail->Send()) {
echo "works";
exit;
} else {
echo "doesn't work";
exit;
}
?>
我尝试了许多解决方案,它带给我疯了。
在此先感谢您的帮助。
答
问题出现在您的PHP文件中。
应该
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$messaggio = $_POST['messaggio'];
因为你已经宣布在AJAX数据的名称
data: "nome=" + nome + "&email=" + email + "&telefono=" + telefono + "&messaggio=" + messaggio,
答
你检查这是不是在你的Ajax数据串设置错误$ _ POST键:
$nome = $_POST['inputName'];
$email = $_POST['inputEmail'];
$telefono = $_POST['inputTelefono'];
$messaggio = $_POST['message'];
将它们更改为:
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$messaggio = $_POST['messagio'];
你是对的!正如我通常在表单中使用“行动”一样,我并不擅长ajax发布数据。非常感谢! – mimelaine 2015-03-08 21:34:14