2012-02-07 3 views
0

지난 밤에 누군가가 처음부터 처음으로 유효성 검사를하면서 많은 도움을주었습니다. 어젯밤 이후로 더 많이 알게되었습니다. JQuery를 만지는 것은 이번이 처음입니다. 내 허식 코딩에 사과드립니다. 여기에 내가 마지막 else 문까지 검증 UP에 대한 벌금과 멋쟁이 작동 할 수있는 작업은 다음과 같습니다 마지막 문은 값을 사용자의 입력을 받아 AJAX를 통해 register.php 파일로 전송해야첫 번째 JQuery 프로젝트 ... 조금 붙임

//VALIDATE FIRST REGISTER PAGE! 
$('#submit1').live('click', function() { 
    check_value1(); 

}); 

function check_value1(){ 
var firstname = $('#firstname').val(); 
var lastname = $('#lastname').val(); 
var email = $('#email').val(); 
var password = $('#password').val(); 
var username = $('#username').val(); 

if(firstname =='' || firstname.length <2) 
$('#fnameError').fadeIn().fadeOut(5000); 

else if(lastname =='' || lastname.length <2) 
$('#lnameError').fadeIn().fadeOut(5000); 

else if(email =='' || email.length <5) 
$('#emailError').fadeIn().fadeOut(5000); 

else if(password =='' || password.length <6) 
$('#passError').fadeIn().fadeOut(5000); 

else if(username =='' || username.length <5) 
$('#usernameError').fadeIn().fadeOut(5000); 

else 
{ 
$('#register1').fadeOut(); 
$('#register2').fadeIn(); 
} 
} 

//VALIDATE SECOND REGISTER PAGE 

$('#submit2').live('click', function() { 
    check_value2(); 
}); 

function check_value2(){ 

var gender = $('#gender').val(); 
var seeking = $('#seeking').val(); 
var month = $('#month').val(); 
var day = $('#day').val(); 
var year = $('#year').val(); 


if(gender =='' || gender.length <4) 
$('#genderError').fadeIn().fadeOut(5000); 

else if(seeking =='' || seeking.length <4) 
$('#seekingError').fadeIn().fadeOut(5000); 

else if(month =='' || month.length > 2) 
$('#monthError').fadeIn().fadeOut(5000); 

else if(day =='' || day.length > 2) 
$('#dayError').fadeIn().fadeOut(5000); 

else if(year =='' || year.length > 4 || year > 1994) 
$('#yearError').fadeIn().fadeOut(5000); 

else 
{ 
$('#register2').fadeOut(); 
$('#register3').fadeIn(); 
} 

} 

//VALIDATE THIRD PAGE 

$('#submit3').live('click', function() { 
    check_value3(); 
}); 

function check_value3(){ 

var height = $('#height').val(); 
var body_type = $('#body_type').val(); 
var ethnicity = $('#ethnicity').val(); 
var religion = $('#religion').val(); 

if(height =='' || height.length <3) 
$('#heightError').fadeIn().fadeOut(5000); 

else if(body_type =='' || body_type.length <4) 
$('#bodyError').fadeIn().fadeOut(5000); 

else if(ethnicity =='' || ethnicity.length <5) 
$('#ethError').fadeIn().fadeOut(5000); 

else if(religion =='' || religion.length <5) 
$('#relError').fadeIn().fadeOut(5000); 

else 
{ 
$('#register3').fadeOut(); 
$('#register4').fadeIn(); 
} 

} 

//VALIDATE FOUTH PAGE 

$('#submit4').live('click', function() { 
    check_value4(); 
}); 

function check_value4(){ 

var city = $('#city').val(); 
var state = $('#state').val(); 
var zip = $('#zip').val(); 

if(city =='' || city.length <2) 
$('#cityError').fadeIn().fadeOut(5000); 

else if(state =='' || state.length <2) 
$('#stateError').fadeIn().fadeOut(5000); 

else if(zip =='' || zip.length <5) 
$('#zipError').fadeIn().fadeOut(5000); 

else 
{ 

var firstnameA = encodeURIComponent($('#firstname').val()); 
var lastnameA = encodeURIComponent($('#lastname').val()); 
var emailA = encodeURIComponent($('#email').val()); 
var passwordA = encodeURIComponent($('#password').val()); 
var usernameA = encodeURIComponent($('#username').val()); 
var genderA = encodeURIComponent($('#gender').val()); 
var seekingA = encodeURIComponent($('#seeking').val()); 
var monthA = encodeURIComponent($('#month').val()); 
var dayA = encodeURIComponent($('#day').val()); 
var yearA = encodeURIComponent($('#year').val()); 
var heightA = encodeURIComponent($('#height').val()); 
var bodytypeA = encodeURIComponent($('#body_type').val()); 
var ethnicityA = encodeURIComponent($('#ethnicity').val()); 
var religionA = encodeURIComponent($('#religion').val()); 
var cityA = encodeURIComponent($('#city').val()); 
var stateA = encodeURIComponent($('#state').val()); 
var zipA = encodeURIComponent($('#zip').val()); 
$('#register4').fadeOut(5000); 
$('#loading').show(); 
$.ajax 
({ 
type: "POST", 
url: "../register.php", 
data: {firstnameB:firstnameA, lastnameB:lastnameA, emailB:emailA, passwordB:passwordA, usernameB:usernameA, genderB:genderA, seekingB:seekingA, monthB:monthA, day:dayA, yearB:yearA, heightB:heightA, bodytypeB:bodytypeA, ethnicityB:ethnicityA, religionB:religionA, cityB:cityA, stateB:stateA, zipB:zipA }, 
success: function(){ $('#loading_text').delay(5000).hide(); $('#success').fadeIn();} 
}); 
    return false; 
} 

} 

있다. 나는 함수를 올바르게 호출하고 있다고 생각하지 않는다. 등록 PHP는 Jquery와 AJAX없이 잘 작동합니다. 참고로, 당신이 그것을 필요로하는 경우에, 나는 나의 HTML의 빠른 버전을 게시합니다 그리고 그 길을 내 PHP는 변수가 전송되는 디코딩 :

<input type="submit" value="Register" id="submit4"/> 

을 마지막 그게 전부 마지막 기능을 활성화해야 버튼을 제출합니다. 여기

내 PHP의 시작이며,이 변수를 디코딩 어떻게 난 방식의 경우
$email_a = htmlspecialchars(trim(urldecode($_POST['emailB']))); 
    $user_name_a = htmlspecialchars(trim(urldecode($_POST['usernameB']))); 
    $pwd_unencrypted_a = htmlspecialchars(trim(urldecode($_POST['passwordB']))); 
    $first_name_a = htmlspecialchars(trim(urldecode($_POST['firstnameB']))); 
    $last_name_a = htmlspecialchars(trim(urldecode($_POST['lastnameB']))); 

    $month = htmlspecialchars(trim(urldecode($_POST['monthB']))); 
    $day = htmlspecialchars(trim(urldecode($_POST['dayB']))); 
    $year = htmlspecialchars(trim(urldecode($_POST['yearB']))); 

    $city_a = htmlspecialchars(trim(urldecode($_POST['cityB']))); 
    $state_a = htmlspecialchars(trim(urldecode($_POST['stateB']))); 
    $zip_a = htmlspecialchars(trim(urldecode($_POST['zipB']))); 
    $gender_a = htmlspecialchars(trim(urldecode($_POST['genderB']))); 
    $gender_of_interest_a = htmlspecialchars(trim(urldecode($_POST['seekingB']))); 
    $height_cm_a = htmlspecialchars(trim(urldecode($_POST['heightB']))); 
    $body_type_a = htmlspecialchars(trim(urldecode($_POST['bodytypeB']))); 
    $ethnicity_a = htmlspecialchars(trim(urldecode($_POST['ethnicityB']))); 
    $religion_a = htmlspecialchars(trim(urldecode($_POST['religionB']))); 

    $email = strip_tags($email_a); 
    $user_name = strip_tags($user_name_a); 
    $pwd_unencrypted = strip_tags($pwd_unencrypted_a); 
    $first_name = strip_tags($first_name_a); 
    $last_name = strip_tags($last_name_a); 
    $city = strip_tags($city_a); 
    $state = strip_tags($state_a); 
    $zip = strip_tags($zip_a); 
    $gender = strip_tags($gender_a); 
    $gender_of_interest = strip_tags($gender_of_interest_a); 
    $height_cm = strip_tags($height_cm_a); 
    $body_type = strip_tags($body_type_a); 
    $ethnicity = strip_tags($ethnicity_a); 
    $religion = strip_tags($religion_a); 
    $edu = strip_tags($edu_a); 




    $pwd = md5($pwd_unencrypted); 
    $full_name = $first_name . " " . $last_name; 
    $pwd_for_email = $pwd_unencrypted; 

    $this_day = date(j); 
    $this_month = date(m); 
    $this_year = date(Y); 

    $find_height_ft = mysql_query("SELECT * FROM height WHERE CM = '$height_cm'"); 
    while($find_height = mysql_fetch_array($find_height_ft)) 
    { 
    $height_ft_a = $find_height['feet_inches']; 
    } 
    $height_ft = mysql_real_escape_string($height_ft_a); 

    $find_zodiac = mysql_query("SELECT * FROM zodiac WHERE Month_Z = '$month' AND Day_Z = '$day'"); 
    while($find_zodiac_array = mysql_fetch_array($find_zodiac)) 
    { 
    $zodiac = $find_zodiac_array['Sign_Z']; 
    } 




if($this_month > $month) 
{ 
$age = $this_year - $year; 
} 
elseif($this_month <= $month && $this_day < $day) 
{ 
$age = $this_year - $year - 1; 
} 
else 
{ 
$age = $this_year - $year; 
} 

if($age >= 18) 
{ 
//I EDITED THIS OUT TO SAVE YOU GUYS THE TIME OF READING IT basically if all above checks out that you're 18, it will insert the variables into the DB this works fine here. 
} 

그래서 내가 확실 해요 전송되는 인코딩/변수 또는 난 길을 디코딩 마지막 함수를 호출합니다. 나는 코드가 부피가 크고 쓰레기처럼 쓰여지는 것에 대해 사과한다.

너희들은 항상 과거에 무리를 도와 줬어! 나는 어떤 도움을 주셔서 감사합니다. - 마이크

답변

2

대신 별도의 변수에 각 값을 지정, 당신은 다음과 같이 jQuery를 기능을 사용하여 모두를 보낼 수 있습니다 : 나는 $('#form').serialize()을 사용

$('#register4').fadeOut(5000); 
$('#loading').show(); 
$.ajax({ 
    type: "POST", 
    url: "../register.php", 
    data: $('#form').serialize(), 
    success: function(){ $('#loading_text').delay(5000).hide(); $('#success').fadeIn();} 
}); 

공지 사항, 여기서 모든 양식을 선택해야합니다 입력이 있으면 입력 값을 가져 와서 인코딩 된 양식으로 제출하여 각각을 개별적으로 인코딩 할 필요가 없습니다.

+0

OHHH! 빌어 먹을 사물 덕분에 일이 훨씬 쉬워졌습니다. 지금 고쳐라. 무리 감사. – user1053263

+0

PHP에서는 이것을 해독하기 위해 unserialize() 함수를 호출합니까? – user1053263

+2

PHP에서는 모든 변수가'$ _POST' 배열에 있으므로 해독 할 필요가 없습니다. –

관련 문제