从javascript文件调用php函数没有响应

时间:2017-07-11 14:18:08

标签: javascript php json ajax

我认为这将是一个非常简单的问题,但由于我不是网络开发人员,所以我会被困住而没有指导。

正如标题问题所说,我需要从我的JS文件中调用php函数。我正在这样做的方法是使用jquery和ajax(在研究告诉我这样做之后),但是当我调用我用我想要做的事情创建的单独的php文件时,它实际上从未出现过执行.php。

在我的JS文件中,我有这个:

function check_empty() {
if (document.getElementById('name').value == "" || document.getElementById('email').value == "" || document.getElementById('msg').value == "") {
    alert("Por favor, preencher todos os campos");
} else {
    var request = $.ajax({
      url: "sendmail.php",
      method: "POST",
      data: { name : document.getElementById('name').value,
              email : document.getElementById('email').value, 
              msg : document.getElementById('msg').value },
              //dataType: "html"
    });

    request.done(function( msg ) {
      alert("Email enviado com sucesso...");
    });

    request.fail(function( jqXHR, textStatus ) {
      alert( "Falha no envio do email: " + textStatus );
    });
    document.getElementById('abc').style.display = "none";
}
return false;
}

在我的php文件中,我有以下内容:

<?php 
require_once 'vendor/autoload.php';

$mail = new PHPMailer;
$mail->isSMTP();
$mail->Debugoutput = 'html';
$mail->SMTPAuth = true;
$mail->SMTPDebug = 2;
$mail->Host = 'smtp.gmail.com';
$mail->Username = '*******@gmail.com';
$mail->Password = '********';
$mail->SMTPSecure = 'SSL';
$mail->Port = 465;
$mail->From = '********@gmail.com';
$mail->FromName = 'Marcelo Porto';
$mail->addReplyTo('********@gmail.com','Reply Adress');
$mail->addAddress($_POST['email'], $_POST['name']);
$mail->Subject = 'Interesse por Obra';
$mail->Body = $_POST['msg'];
$mail->send();
?>

我在我的主html文件中附加了jquery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

我的主要html汇总,在Button上使用check_empty()函数调用:

<html>
<head>
<title>Acervo</title>
<link href="./stylesheet.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="./js_proj.js"></script>
</head>
<body id="body" bgcolor="#B4B4B4">
<div style= "display:none;" class="popupSheet" id="abc" >
<!-- Popup Div Starts Here -->
<div class="popupSheet" id="popupContact" >
<!-- Contact Us Form -->
<form class="popupSheet" id="form" name="form">
<img class="popupSheet" id="close" src="images/4.svg" onclick ="div_hide()">
<h2 class="popupSheet" >Entre em contato</h2>
<hr class="popupSheet">
<input class="popupSheet" id="name" name="name" placeholder="Nome" type="text">
<input class="popupSheet" id="email" name="email" placeholder="Email" type="text">
<textarea class="popupSheet" id="msg" name="message" placeholder="Mensagem"></textarea>
<button type="button" class="popupSheet" onClick = "check_empty()" id="submit">Enviar</a>
</form>
</div>
<!-- Popup Div Ends Here -->
</div>

我已经尝试了对结构进行了一些修改,所以我觉得我错过了一些非常具体的内容。 Debbug不知道发生了什么,或者我不理解......

enter image description here

我真的很感激任何帮助。

目前,我在我的localhost上运行它,并且所有提到的文件都放在同一个文件夹中。

0 个答案:

没有答案