好吧,我一直在努力学习网络编程,以便尽快提交一个项目,无论如何,我偶然发现了一个教程,我不能,为了我的爱,理解如何从他的javascript数据传递到他写的php脚本。
下面是片段。
Javascript:
$("form").submit(function(event) {
event.preventDefault();
var name = $("#mail-name").val();
var email = $("#mail-email").val();
var gender = $("#mail-gender").val();
var massage = $("#mail-massage").val();
var submit = $("#mail-submit").val();
$(".form-message").load("mail.php",{
name: name,
email: email,
gender: gender,
massage: massage,
submit: submit
});
})
})
PHP:
$name = $_POST['name'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$massage = $_POST['massage'];
$errorEmpty = false;
$errorEmail = false;
if(empty($name) || empty($email) || empty($massage)) {
echo "<span class='from-error'> Fill in all fields!</span>";
$errorEmpty = true;
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "<span class='from-error'> Write a valid e-mail address!</span>";
$errorEmail = true;
}else{
echo "<span class='form-success'> E-mall has been sent! </span>";
}
这里的php是如何从 "表单 "中接收数据的?另外,在$("form")上,这应该是一个ID或者是一个将包含信息的表单的CLASS设置(这在教程中没有提到)。
最后,.load("mail.php")是负责将数据发送到php的吗?
如果是,为什么他要加上$(".form-message")这个p标签。
首先,该 $("form")
提及 <form>
在你的页面中的html标签。
所以基本上, $("form").submit
参照活动表单点击(表单提交)。
的 .form-message
是一个div或p...的类,它将包含响应的 mail.php
.在这里的例子中,它可能是在这些行。
<span class='from-error'> Fill in all fields!</span>
<span class='from-error'> Write a valid e-mail address!</span>
<span class='form-success'> E-mall has been sent! </span>
这里的load jquery函数要做一个HTTP请求,发送参数到mail.php文件。
{
name: name,
email: email,
gender: gender,
massage: massage,
submit: submit
}
该php文件将把给定的参数映射为.php文件。
$name = $_POST['name'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$massage = $_POST['massage'];
请记住,参数名称应该保持一致。
查看这里一些关于.JQuery加载函数的有用链接。
当你从表单中提交数据时,无论是GET还是POST,它都会进入表单中的动作参数,这个动作参数可以是一个php脚本。.load()函数会获取mail.php文件,其中包含你在javascript中设置的参数,并返回一些html代码,这些代码会被添加到你的p标签中(即.form-message)。
所以当你加载它,并设置这些参数时,js就会把数据发送到PHP中。
$("form")是指页面上的任何表单。$("#form")是选择ID为form的元素,$(".form")是选择类form的元素。