联系表格上有错误

时间:2018-05-24 17:28:55

标签: php

我正在尝试用PHP,Ajax和JQuery编写联系表单。

错误是这样的:

  

未捕获的SyntaxError:意外的令牌<在位置0的JSON中           在JSON.parse(

但我不知道我做错了什么,因为我复制并粘贴了一些教程的代码。

我正在使用foundation6,php和ajax。

我认为错误是针对JSON.parse的,但我不知道如何解决

这是我的代码,你能帮帮我吗?感谢

contact.php

 <form method="post" id="formulario" data-abide novalidate action="<?php echo get_stylesheet_directory_uri(); ?>/src/assets/php/enviar.php">
                            <div class="campo">
                                <label for="nombre">Nombre: 
                                    <input type="text" id="nombre" placeholeder="Nombre" name="name" required>
                                    <span class="form-error">Error el nombre no puede ir vacio.</span>
                                </label>
                            </div>
                            <div class="campo">
                                <label for="email">Email: 
                                    <input type="text" id="email" placeholeder="Email" name="email" required pattern="email">
                                    <span class="form-error">Error correo vacio o invalido.</span>
                                </label>
                            </div> 

                            <div class="campo">
                                <label for="fecha">Mensaje: 
                                    <textarea name="mensaje" rows="6" required></textarea>
                                    <span class="form-error">Error correo vacio o invalido.</span>
                                </label>
                            </div> 
                            <div class="campo">
                                <input type="submit" name="enviar" value="Enviar" class="button explorar">
                            </div>
                        </form>

enviar.php

<?php 
    function is_ajax() {
        return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
    }



if(is_ajax()) {
    $nombre = $_POST['nombre'];
    $email = $_POST['email'];
    $mensaje = $_POST['mensaje'];

    $header = 'From: ' . $email . "\r\n";
    $header .= "X-Mailer: PHP/" . phpversion() . "\r\n";
    $header .= "Mime-Version: 1.0 \r\n";
    $header .= "Content-Type: text/html";

    $mensajeCorreo = 'This message was sent by: ' . $nombre . "\r\n";
    $mensajeCorreo .= "Email: " . $email . "\r\n";
    $mensajeCorreo .= "Mensaje: " . $mensaje . "\r\n";

    $para = "email";
    $asunto = "Contacto de sitio web";
    mail($para, $asunto, utf8_encode($mensajeCorreo), $header );

    echo json_encode(array(
        'mensaje' => sprintf('El mensaje se ha enviado!')
    ));

} else {
    die("Prohibido!");
}

app.js

// Form Contact
$('#formulario')
.on("invalid.zf.abide", function(ev,elem) {
    swal(
        'Error!', 
        'El formulario se envio incompleto',
        'error'
    );
  })


  // form validation passed, form will submit if submit event not returned false
  .on("formvalid.zf.abide", function(ev,frm) {
      var formulario = $(this);
        $.ajax({
            type: formulario.attr('method'),
            url: formulario.attr('action'),
            data: formulario.serialize(),
            success: function(data) {
                    var resultado = data;
                    var respuesta = JSON.parse(resultado);
                  console.log(respuesta);
                  swal(
                      respuesta.message,
                      'Thank You, ' + respuesta.name + ' for your reservation!',
                      'success'
                  )
             }
        });
  })
  // to prevent form from submitting upon successful validation
  .on("submit", function(ev) {
    ev.preventDefault();
    console.log("Submit for form id "+ev.target.id+" intercepted");
  });

0 个答案:

没有答案