PHP クラスの 1 つのメソッドで JQuery AJAX を動作させるには、助けが必要です。データベース クラスを拡張する PHP クラスを使用してフォームを検証しました。AJAX が機能するだけで十分です。AJAX を OO PHP で動作させるにはどうすればよいですか? 私は過去数日間これに固執しており、インターネット全体を調査しましたが、機能するものは何も見つかりませんでした. 誰かがJQueryのAJAX関数をPHPメソッドで動作させる簡単な例を投稿できますか?
以下は、ユーザーが検証に合格したかどうかを返す PHP メソッドです (database.class.php を拡張した contact.class.php)。
public function isValidData() {
if ($this -> firstName() && $this -> lastName() && $this -> email() && $this -> subject() && $this -> message()) {
return true;
} else {
return false;
}
}
ここにJqueryがあります。Ajax は一番下にあります。
//Submit function called when the user clicks the submit button
$('#contact_form').submit(function(e) {
//Prevent submission until the user passes validation
e.preventDefault();
//If all the functions return true, then send form to the AJAX function
if(validFirstName() && validLastName() && validEmail() && validSubject() && validMessage()) {
//Serialize the data in the form for the AJAX Request
var formData = $('#contact_form').serialize();
//submitForm(formData);
//Displays success message, clears contact form and hides the lightbox
$('#contact_form').fadeOut(1000, function() {
$('.success').html('Form submission successful.' + '<br/>' + 'Thank you ' + $('input.first').val() + "!").fadeIn(4000, function() {
//Clears contact form
$('.first').val('');
$('.last').val('');
$('.email').val('');
$('.subject').val('');
$('.message').val('');
//Hides success message
$('.success').hide();
//Hides lightbox
$('.mask, .main_contact').css('display', 'none');
});
});
return true;
} else {
return false;
}
});
//Validates the user's first name
function validFirstName() {
var firstName = $('.first').val();
if(firstName.length <= 2 || firstName == '') {
$('.error').show().html('3 Characters required!<br/>');
$('.first').css('box-shadow', ' 0 0 10px #B40404');
return false;
} else {
$('.first').css('box-shadow', '0 0 4px #000');
$('.error').hide();
return true;
}
}
//Validates the user's last name
function validLastName() {
var lastName = $('input.last').val();
if(lastName.length <= 2 || lastName == '') {
$('.error').show().html('3 Characters required!<br/>');
$('input.last').css('box-shadow', '0 0 10px #B40404');
return false;
} else {
$('input.last').css('box-shadow', '0 0 4px #000');
$('.error').hide();
return true;
}
}
//Validates the user's email
function validEmail() {
var email = $('.email').val();
if(!email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {
$('.error').show().html('Invalid email address!<br/>');
$('.email').css('box-shadow', ' 0 0 10px #B40404');
return false;
} else {
$('.email').css('box-shadow', '0 0 4px #000');
$('.error').hide();
return true;
}
}
//Validate the subject input in the contact form
function validSubject() {
var subject = $('.subject').val();
if(subject.length <= 2 || subject == '') {
$('.error').show().html('3 Characters required!<br/>');
$('.subject').css('box-shadow', ' 0 0 10px #B40404');
return false;
} else {
$('.subject').css('box-shadow', '0 0 4px #000');
$('.error').hide();
return true;
}
}
//Validate the message input
function validMessage() {
var message = $('.message').val();
if(message.length <= 2 || message == '') {
$('.error').show().html('3 Characters required!<br/>');
$('.message').css('box-shadow', ' 0 0 10px #B40404');
return false;
} else {
$('.message').css('box-shadow', '0 0 4px #000');
$('.error').hide();
return true;
}
}
});
//Ajax リクエスト
function submitForm(フォームデータ) {
$.ajax({
type : "POST",
url : "includes/function.php",
data : formData,
dataType: 'json',
cache : false,
success : function(formData) {
if(formData.success) {
alert(formData.msg);
} else {
alert("Error");
}
console.log(formData);
}
});
Jquery は、私の PHP サーバー側の検証も無効にしているようです。JQuery が無効になっている場合、サーバー側の検証は正常に機能します。JQueryがサーバーの検証を無効にする理由は何ですか? 私はプログラミングが初めてなので、助けていただければ幸いです。