Php 复杂表单POST和验证
我问了这个问题,但显然没有人明白,只要他们花时间看看我发布的链接。我仍在努力使这一点正确,我真的需要帮助这里 我有一张“活动”登记表;它需要第一部分中的人员的姓名、电子邮件和联系电话。然后,有两个复选框表示男性或女性。如果勾选了“男性”,则会出现男性活动的下一部分,在该部分中,他们必须选择场地、希望参加的时间和会话量。选择女性时也一样 men下的一些字段没有选择,但有一个设置值-例如,只有on Vince,因此我会设置文本以显示场地名称 我将发布一个到表单的链接。我可以使用所有的显示功能,但是使用AJAX发布表单不起作用 问题在于,尽管“女性”部分隐藏在显示中,但它仍然存在于代码中,jQuery也希望验证该部分。在发布表单时,男性和女性发布表单的地点id、时间id和会话id是相同的。我这样做是因为如果选择了“男性”,代码中根本不应该显示女性部分 我想我做错了。我是否应该在每个部分中添加jQuery,具体选择男性还是女性 以下是我目前的情况:Php 复杂表单POST和验证,php,jquery,html,ajax,forms,Php,Jquery,Html,Ajax,Forms,我问了这个问题,但显然没有人明白,只要他们花时间看看我发布的链接。我仍在努力使这一点正确,我真的需要帮助这里 我有一张“活动”登记表;它需要第一部分中的人员的姓名、电子邮件和联系电话。然后,有两个复选框表示男性或女性。如果勾选了“男性”,则会出现男性活动的下一部分,在该部分中,他们必须选择场地、希望参加的时间和会话量。选择女性时也一样 men下的一些字段没有选择,但有一个设置值-例如,只有on Vince,因此我会设置文本以显示场地名称 我将发布一个到表单的链接。我可以使用所有的显示功能,但是使
寄存器
-
名字:
*必需的
-
姓氏:
*必需的
-
电邮:
*必需的
-
联系电话
*必需的
-
男性
女性
*必需的
-
地点:
选择场地
这是第1条-女性
这是第二条——女性
*必需的
-
时间:
选择一个时间段
这一次是1-venue1
那一次2-1
*必需的
-
时间:这次-venue2
-
每周三次:
选择频率。。。
一周两次
一周三次
*必需的
- 地点:
这个场地-男人
- 时间:
这一次-男人
-
每周三次:
选择频率。。。
一周两次
一周三次
*必需的
h3{
字体大小:粗体;
字号:18px;
边缘底部:30px;
}
ulli{
位置:相对位置;
边缘底部:10px;
}
字段集#女性{显示:无;}
字段集#人{显示:无;}
li#select-time1,li#select-time2{
显示:无;
}
标签,.label{宽度:130px;显示:内联块;}
li.收音机选择{左侧填充:108px;位置:相对;}
li.radio-select标签{float:left;width:auto!重要;左边距:28px;}
li.radio-select输入{float:left;margin left:20px;}
span.错误消息{背景:e39595;颜色:白色;填充:3px 12px;边框半径:5px;位置:绝对;顶部:0;显示:无;z索引:100;}
.hide{显示:无}
//在表单选择上显示相应的字段
var$men=$(“fieldset.men”),
$women=$(“fieldset.women”);
$(':radio.men')。在('click',函数(){
if($women.css('display','block'==true)){
$women.淡出(300,功能(){
$men.fadeIn('slow');
});
}否则{
$men.fadeIn('slow');
}
});
$(':radio.women')。在('click',函数(){
if($men.css('display','block'==true)){
$men.淡出(300,功能(){
$women.fadeIn('slow');
});
}否则{
$women.fadeIn('slow');
}
});
//根据场馆的选择更改时间显示
$('#regVenue')。更改(函数(){
var selectVal=$(“#regVenue选项:selected”).val(),
venue1=$('li#select-time1'),
venue2=$('li#select-time2');
如果(选择Val==“moreleta”){
venue2.衰减(300,功能(){
venue1.fadeIn(300);
});
}
如果(选择Val==“仙谷”){
venue1.衰减(300,功能(){
venue2.fadeIn(300);
});
}
});
//表单验证和发送请求
$('#regSubmit')。在('click',函数(){
$('.error_message').hide();
var regFirstname=$('input#regFirstname').val();
如果(regFirstname==“”){
$(“span.error_regFirstname”).show();
$(“输入#regFirstname”).focus();
返回false;
}
var regLastname=$('input#regLastname').val();
如果(regLastname==“”){
$(“span.error_regLastname”).show();
$(“输入#regLastname”).focus();
返回false;
}
var regEmail=$('input#regEmail').val();
如果(regEmail==“”){
$(“span.error_regEmail”).show();
$
<h3>Register</h3>
<div class="new_message">
<form action="" method="POST" id="register">
<fieldset id="personal-info">
<ul>
<li class="clearfix">
<label for="regFirstname">Firstname:</label>
<input type="text" rel="req" name="regFirstname" id="regFirstname" placeholder="First Name" />
<span class="error_message error_regFirstname">*required</span>
</li>
<li class="clearfix">
<label for="regLastname">Lastname:</label>
<input type="text" rel="req" name="regLastname" id="regLastname" placeholder="Last Name" />
<span class="error_message error_regLastname">*required</span>
</li>
<li class="clearfix">
<label for="regEmail">Email:</label>
<input type="email" rel="req" name="regEmail" id="regEmail" placeholder="Email" />
<span class="error_message error_regEmail">*required</span>
</li>
<li class="clearfix">
<label for="regContact">Contact Number</label>
<input type="text" name="regContact" id="regContact" placeholder="Contact Number" />
<span class="error_message error_regContact">*required</span>
</li>
<li class="clearfix radio-select">
<label for="sex">Male</label>
<input type="radio" name="regSex" id="regSex" class="men" />
<label for="sex">Female</label>
<input type="radio" name="regSex" id="regSex" class="women" />
<span class="error_message error_regEmail">*required</span>
</li>
</ul>
</fieldset>
<fieldset id="women" class="women">
<ul>
<li class="clearfix">
<label for="regVenue">Venue:</label>
<select name="regVenue" id="regVenue">
<option value="">Select a venue</option>
<option value="moreleta">this venue1 - women</option>
<option value="faerie-glen">this venue2 - women</option>
</select>
<span class="error_message error_regVenue">*required</span>
</li>
<li class="clearfix" id="select-time1" value="moreleta">
<label for="regTime">Time:</label>
<select name="regTime" id="regTime">
<option value="">Select a time slot</option>
<option value="8h00">this time1 - venue1</option>
<option value="17h15">that time2 - venue1</option>
</select>
<span class="error_message error_regTime">*required</span>
</li>
<li class="clearfix" id="select-time2" value="faerie-glen">
<input type="text" value="5h30 - 6h30 (mornings)" class="hide" />
<span class="label">Time:</span> this time - venue2</li>
<li class="clearfix">
<label for="timesWeek">Times a week:</label>
<select name="timesWeek" id="regTimesWeek">
<option value="">select frequency...</option>
<option value="moreleta">twice a week</option>
<option value="faerie-glen">three times a week</option>
</select>
<span class="error_message error_regTimesweek">*required</span>
</li>
</ul>
</fieldset>
<fieldset id="men" class="men">
<ul>
<li class="clearfix"><span class="label">Venue:</span>
this venue - men
<input class="hide" type="text" value="this venue" id="regVenue" name="regVenue"/>
</li>
<li class="clearfix"><span class="label">Time:</span>
This time - men
<input class="hide" type="text" value="this venue" id="regTime" name="regTime"/>
</li>
<li class="clearfix">
<label for="timesWeek">Times a week:</label>
<select name="timesWeek" id="timesWeek">
<option value="">select frequency...</option>
<option value="twice a week">twice a week</option>
<option value="three times a week">three times a week</option>
</select>
<span class="error_message error_regTimesweek">*required</span>
</li>
</ul>
</fieldset>
<input class="buttonLink" type="submit" value="Register" id="regSubmit" />
</form>
</div>
h3{
font-weight:bold;
font-size:18px;
margin-bottom:30px;
}
ul li {
position:relative;
margin-bottom:10px;
}
fieldset#women{ display: none;}
fieldset#men{display: none;}
li#select-time1, li#select-time2{
display: none;
}
label, .label{width:130px;display:inline-block;}
li.radio-select{padding-left: 108px; position: relative;}
li.radio-select label{float: left; width: auto !important; margin-left: 28px;}
li.radio-select input{ float: left; margin-left: 20px;}
span.error_message{background: #e39595;color: white;padding: 3px 12px;border-radius: 5px;position: absolute;top: 0;display: none;z-index: 100;}
.hide{display:none}
// on form selection display appropriate fields
var $men = $("fieldset.men"),
$women = $("fieldset.women");
$(':radio.men').on('click', function () {
if ($women.css('display', 'block' === true)) {
$women.fadeOut(300, function () {
$men.fadeIn('slow');
});
} else {
$men.fadeIn('slow');
}
});
$(':radio.women').on('click', function () {
if ($men.css('display', 'block' === true)) {
$men.fadeOut(300, function () {
$women.fadeIn('slow');
});
} else {
$women.fadeIn('slow');
}
});
// Change display of times depending on selection made on venues
$('#regVenue').change(function () {
var selectVal = $('#regVenue option:selected').val(),
venue1 = $('li#select-time1'),
venue2 = $('li#select-time2');
if (selectVal === "moreleta") {
venue2.fadeOut(300, function () {
venue1.fadeIn(300);
});
}
if (selectVal === "faerie-glen") {
venue1.fadeOut(300, function () {
venue2.fadeIn(300);
});
}
});
// form validation and send request
$('#regSubmit').on('click', function () {
$('.error_message').hide();
var regFirstname = $('input#regFirstname').val();
if (regFirstname === "") {
$("span.error_regFirstname").show();
$("input#regFirstname").focus();
return false;
}
var regLastname = $('input#regLastname').val();
if (regLastname === "") {
$("span.error_regLastname").show();
$("input#regLastname").focus();
return false;
}
var regEmail = $('input#regEmail').val();
if (regEmail === "") {
$("span.error_regEmail").show();
$("input#regEmail").focus();
return false;
}
var regContact = $('input#regContact').val();
if (regContact === "") {
$("span.error_regContact").show();
$("input#regEmail").focus();
return false;
}
var regSex = $('input#regSex').val();
var regVenue = $('select#regVenue').val();
if (regVenue === "") {
$("span.error_regVenue").show();
$("select#regVenue").focus();
return false;
}
var regTime = $('select#regTime').val();
if (regTime === "") {
$("span.error_regTime").show();
$("select#regTime").focus();
return false;
}
var regTimesweek = $('select#regTimesweek').val();
if (regTimesweek === "") {
$("span.error_regTimesweek").show();
$("select#regTimesweek").focus();
return false;
}
var info = 'regFirstname=' + regFirstname + '®Lastname=' + regLastname + '®Email=' + regEmail + '®Contact=' + regContact + '&sex=' + regSex + '®Venue=' + regVenue + '®Time=' + regTime + '®Timesweek=' + regTimesweek;
$.ajax({
type: "POST",
url: "register_form.php",
data: info,
success: function () {
$('#register_form').html("<div id='new_message'></div>");
$('#new_message').html("<h3>Thank you for registering to join GO-Active Boot Camp!</h3>").append("<p>We will be in touch soon.</p>").hide().fadeIn(1500, function () {
$('#new_message');
});
}
});
return false;
});
<?php
/* Set e-mail recipient */
$myemail = "me@email.com";
$subject = "Go-Active - Contact Form";
$headers = 'From: me@email.com' . "\r\n" .
'Reply-To: me@email.com';
$regFirstname = check_input($_POST['regFirstname'], "Please Name");
$regLastname = check_input($_POST['regLastname'], "Please Name");
$regEmail = check_input($_POST['regEmail'],"Please enter valid Email Address");
$regContact = check_input($_POST['regContact'],"Please enter valid Contact Number");
$regSex = check_input($_POST['regSex'],"Please select you sex");
$regVenue = check_input($_POST['regVenue'],"Please select a Venue");
$regTime = check_input($_POST['regTime'],"Please select you Timeslot");
$regTimesweek = check_input($_POST['regTimesweek'],"Please select how many times a week");
$myError = 0;
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $regEmail))
{
$myError=("E-mail address not valid");
}
/* Let's prepare the message for the e-mail */
$message = "Hello!
Your contact form has been submitted by:
Name:". $regFirstname . " " . $regLastname ."\r\n" .
"E-mail:".$regEmail."\r\n" .
"Subject:".$message_subject."\r\n" . "\r\n" .
"Message:" . "\r\n" . "\r\n" .$content. "\r\n" . "\r\n" .
"End of message";
/* Send the message using mail() function */
@mail($myemail, $subject, $message, $headers);
echo $myError;
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
$myError = ($problem);
}
return $data;
}
?>
if (gender.val() == 'male') {
if (myfield.val() == 'what it should be') {
//Valid
} else {
//Invalid
}
}