Не возвращает мне ответ AJAX


Хорошо у меня есть регистрационная форма, в которой они заполняют данные, и через AJAX я вставляю данные в базу данных. До сих пор он работал идеально и возвращал мне ответ в режиме уведомления с TOAST.

но когда вы помещаете в файл, который также отправляет его по почте, уведомление перестает работать, но если вы вставляете запись. Я подробно расскажу вам код.

Аякс

$(function(){
 $("#formuploadajax1").on("submit", function(e){
 e.preventDefault();
   if (comprobar_dni($('#nif').val()) == false) {
   toastr["error"]("El DNI/NIF no es correcto!", "Mensaje");
   return;
 }
  var f = $(this);
  var formData = new FormData(document.getElementById("formuploadajax1"));
  formData.append("dato", "valor");
  //formData.append(f.attr("name"), $(this)[0].files[0]);
  $.ajax({
    url: "incluCuenta/insertar-cliente.php",
    type: "post",
    dataType: "html",
    data: formData,
    cache: false,
    contentType: false,
    processData: false
    })
    .done(function(res){
      if(res=="1"){
      toastr["info"]("Registro exitoso!", "Mensaje")
      setTimeout(function () {
      window.location.href = "login.php"; //will redirect to your blog page (an ex: blog.html)
     }, 1500); //will call the function after 2 secs
     }else{
       $("#mensaje").html(res);
       toastr["error"]("Utiliza otro usuario!", "Mensaje")
     }
     });
          });
      });

что делает меня сейчас, так это то, что я вытащите из (res) я получаю значение, которое находится в "else"

я подробно insertar-cliente.php это немного долго будет иметь прокрутку

<?php
include "../conexion/conexion.php";

mysqli_set_charset($mysqli, "utf8");
$results = 'SELECT * FROM Usuarios';
$rec = mysqli_query($mysqli, $results);

if ($rec === false) {
die('ERROR SQL: ' . htmlspecialchars(mysqli_error($mysqli)));
}
while ($results = mysqli_fetch_object($rec)) {

if(mb_strtolower($results->Username) == mb_strtolower($_POST['email'])) 
{

  die('<div class=\'form\'> 
     <div class="alert alert-danger" style="font-size: 14px;"><strong>¡Error!</strong> Este usuario ya esta en uso.</div>         
    </div>');
  }

}

$name = mysqli_real_escape_string($mysqli, $_POST['name']);
$email = mysqli_real_escape_string($mysqli, $_POST['email']);
$telefono = mysqli_real_escape_string($mysqli, $_POST['telefono']);
$movil = mysqli_real_escape_string($mysqli, $_POST['movil']);
$nif = mysqli_real_escape_string($mysqli, $_POST['nif']);
$direccion = mysqli_real_escape_string($mysqli, $_POST['direccion']);
$postal = mysqli_real_escape_string($mysqli, $_POST['postal']);
$poblacion = mysqli_real_escape_string($mysqli, $_POST['poblacion']);
$provincia = mysqli_real_escape_string($mysqli, $_POST['provincia']);
$pass = mysqli_real_escape_string($mysqli, $_POST['pass']);
$sexo = mysqli_real_escape_string($mysqli, $_POST['sexo']);
$fecha = date('y,m,d');

$results = "
INSERT INTO Usuarios (
    Fecha,
    Sexo,
    Nombre,
    Password,
    Username,
    Direccion,
    Postal,
    Poblacion,
    Provincia,
    Telefono,
    Movil,
    Dni,
    intestado
) VALUES (
    '$fecha',
    '$sexo',
    '$name',
    '$pass',
    '$email',
    '$direccion',
    '$postal',
    '$poblacion',
    '$provincia',
    '$telefono',
    '$movil',
    '$nif',
    '1'
  )
";
if (mysqli_query($mysqli, $results) === false) {
die('Error SQL: ' . htmlspecialchars(mysqli_error($mysqli)));
}
echo "1";

include "../plantillaEmail/template.php";
include "../PHPMailer/class.phpmailer.php";
include "../PHPMailer/class.smtp.php";



$email_user = "usuario";
$email_password = "pass";
$the_subject = "Bienvenid@ $name";
$address_to = "$email";
$from_name = "Depildiodo";
$phpmailer = new PHPMailer();
$phpmailer->Username = $email_user;
$phpmailer->Password = $email_password; 
$phpmailer->CharSet = 'UTF-8';
$phpmailer->SMTPSecure = 'ssl';
$phpmailer->Host = "mail.depildiodo.com"; // GMail
$phpmailer->Port = 465;
$phpmailer->IsSMTP(); // use SMTP
$phpmailer->SMTPAuth = true;
$phpmailer->setFrom($phpmailer->Username,$from_name);
$phpmailer->AddAddress($address_to); // recipients email
$phpmailer->Subject = $the_subject; 
$phpmailer->Body = $body;
$phpmailer->IsHTML(true);
$phpmailer->Send();
?>

проблема заключается в добавлении include "../plantillaEmail/template.php";, чтобы поместить эту строку, которая печатает мне шаблон почты и больше не получает уведомление хорошо.

В template.php

<?php $body="aqui esta todo el contenido de la plantilla";?>
Author: Miguel, 2018-10-04

2 answers

Уже попробовали использовать typeof вместо ==, то есть в if, вы можете использовать, if(typeof res == 'number' && parseInt(res)==1), скорее всего, ответа не будет бросать в правильный формат, другой метод заключается в использовании console.log(res); для а отдельные результаты.

Вы также можете увидеть с

  .done(function(res){
       res = parseInt(res.trim().replace(/\D+/g, ""));
       if(res==1){}
       else{}
   })

Скорее всего, вы не получаете HTTP-ответ правильно, он должен быть 200

 0
Author: Arcaela, 2018-10-04 07:50:23
//Indicas todos los campos que necesites por POST
$need = array(
    "name",
    "email",
    "telefono",
    "movil",
    "nif",
    "direccion",
    "postal",
    "poblacion",
    "provincia",
    "pass",
    "sexo",
    "fecha",
);
$var = array();
foreach ($need as $key) {
    /*En caso de que no tengas el campo por POST*/
    if (!empty($_POST[$key])) {
        switch ($key) {
            case 'name':
                return "Necesitas un nombre";
                break;
            /*
                Continuas las validaciones
            */
            default:
                # code...
                break;
        }
    }
    /*En caso de que el campo sea válido*/
    else{
        $var[$key] = mysqli_real_escape_string($mysqli,$_POST[$key]);
    }
}
$fecha = date('y,m,d');
print_r($var);
 0
Author: Arcaela, 2018-10-04 07:56:28