Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery和PHP发布表单值_Php_Javascript_Jquery_Ajax - Fatal编程技术网

使用jquery和PHP发布表单值

使用jquery和PHP发布表单值,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我试图使用PHP向电子邮件发送一个简单的表单,但无法使实际的ajax功能正常工作 表格如下: <form id="quick-booking-form" method="post" action="#"> <input type="text" name="mail" id="mail"> <textarea name="message" id="message">

我试图使用PHP向电子邮件发送一个简单的表单,但无法使实际的ajax功能正常工作

表格如下:

<form id="quick-booking-form" method="post" action="#">
                    <input type="text" name="mail" id="mail">
                    <textarea name="message" id="message">
                    </textarea>
                    <input type="submit" value="Send the Message" id="SendTheForm">
                </form>
它应该将数据发送到此PHP文件(process.PHP):

应该做的是提交表单。然后在validate.js中对其进行验证(代码省略)。如果通过,表单数据将发送到process.php。这反过来会向发送通知消息notify@test.com

当前发生的情况是,
警报(“功能启动”)
触发,显示正确值的警报也会触发


这就是它所能做到的。邮件功能似乎没有启动,最后一个警报也没有显示。

你是对的,但有些更改,请尝试此操作

$(function() {  
//alert("page loaded");
$('#quick-booking-form').submit(function(event) {
    event.preventDefault();
    alert("Start of function");
    var mail = $("#mail").val();
    var message = $("#message").val();
    alert("Mail: " + mail + "Message: " + message);

    $.ajax({
        type: "POST",
        url:"process.php",
        data:{ 
            "mail": mail,
            "message": message, 
            },
        dataType: "text",
        success: function(html) {
           alert(html);
        }
    });
    return false;

    //next line: end of ajax
    });
    //next line: end of script
  }); 
对ajax使用preventDefault函数和success,而不是done 包含JQUERY库

HTML:

<form id="quick-booking-form" method="post" action="javascript:return false">
email:
<input type="text" name="mail" id="mail">
<br/>
message: <textarea name="message" id="message">
</textarea><br/>
<input type="submit" value="Send the Message" id="SendTheForm">
</from>
process.php:

$to =$_POST['mail'];
$subject = "Test mail";
$message =$_POST['mesage'];
$from = "bookings@test.net";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";

帮助我们,帮助你。什么不起作用?你预期会发生什么,会发生什么?javascript控制台中是否存在任何错误?浏览器工具的“网络”选项卡上的XHR请求是否正确?您当前是否收到任何警报?可能正在触发默认提交事件。将
event.preventDefault()
添加到处理程序的开头。HTML没有结束标记
,PHP的第一行应该从
$msg=$\u POST['mesage']更改
$msg=$\u POST['message']。仍然不确定这是否是问题所在。dataType(我知道这是默认字符串,但PHP是否输出一个字符串),成功回调?链接
.done()
虽然表示为成功回调的替代方法,但无论AJAX将完成并触发它,它仍将触发。我也同意Fred ii的观点——对于许多错误来说,这看起来像是一个从不同来源复制和粘贴的代码的黑客工作,这些代码串在一起,一些变量发生了变化。不管事情实际如何运作/打算如何运作。
<form id="quick-booking-form" method="post" action="javascript:return false">
email:
<input type="text" name="mail" id="mail">
<br/>
message: <textarea name="message" id="message">
</textarea><br/>
<input type="submit" value="Send the Message" id="SendTheForm">
</from>
$(function() {  
    //alert("page loaded");
    $('#quick-booking-form').submit(function(event) {

        var mail = $("#mail").val();
        var message = $("#message").val();
        if(mail==""){
            alert("enter Mail"); return false;
         }
        if(message==""){
            alert("enter message"); return false;
         }
        $.ajax({
            type: "POST",
            url:"process.php",
            data:{ 
                "mail": mail,
                "message": message, 
                },success:function(result){
                    alert(result);
                 }

        });

    //next line: end of ajax
    });
//next line: end of script
}); 
$to =$_POST['mail'];
$subject = "Test mail";
$message =$_POST['mesage'];
$from = "bookings@test.net";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";