页面更新,当我尝试使用ajax+php发送mail-foem数据时

我正在尝试使用ajax技术发送数据。我制作了一个 ajax_form.js 文件,负责此功能:


$(document).ready(function(){

    var name = $("#name").val();

    var email = $("email").val();

    var message = $("message").val();

$("#push").submit(function(e){  // $("#push") is a button

    e.preventDefault();

    $.ajax({

        url: "../send.php",

        tpye: "POST",

        cache: false,

        data: { 'name': name, 'email': email, 'message': message },

        dataType: 'html',

        beforeSend: function(){

            $("#push").prop("disabled",true);

        },

        succsess: function(data){

            if(!data){

                alert("ошибка при отправке данных");

            }

            else{

                $("#mail_form").trigger("reset");

                alert(data);    

            }

            

            $("push").prop("disabled", false);

        },

    })

    

})

}) 

我制作了以下脚本 send.php,其中包含用于发送的变量和 mail() 函数:


<?php

$name = $_POST['name'];

$email = $_POST['email'];

$message = $_POST['message'];

$subject = "=?utf-8?B?".base64_encode("Заявка с сайта")."?=";

$headers = "From: $email\r\nReply to: $email\r\nContent-type: text/html; charset=utf-8\r\n";




$name = trim($name);

$name = trim($email);


if (isset($name) && isset($email) && isset($message)){

    $success = mail("d.romanuk@mail.ru", $subject, $message, $headers);

    echo $success;

}

ini_set("display_errors","1");

ini_set("display_startup_errors","1");

ini_set('error_reporting', E_ALL);


?>

这里我有两个问题:1)当我单击按钮时,页面更新,并且邮件表单中的数据不发送;它不应该更新网页,因为我正在使用e.preventDefault() 2)而且我想我的网络表单不起作用,因为它应该alert()在发送数据之后



米脂
浏览 103回答 1
1回答

繁华开满天机

提交事件在表单元素上触发,但您将事件侦听器附加到按钮。将其移至表格中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript