چگونه ارورهای اعتبارسنجی php رو از سمت صفحه پذیرنده فرم ارسالی بوسیله ایجکس برگردونیم؟
سلام.
من یک فرم دارم که با ایجکس سابمیت میشه.
مشکلم اینجاست که میخوام زمانی که فرم با موفقیت داخل دیتابیس ذخیره میشه یه پیام نشون بده که فرم با موفقیت ذخیره شده و یا اگه موفقیت آمیز نبوده یه پیام بفرسته که نا موفق بوده.
این کد ایجکس ارسال فرممه:
<body>
<main class="mn-inner">
<div class="row">
<div class="col s12">
</div>
<div class="col s12 m12 l12">
<div class="card">
<div class="card-content">
<form id="example-form" class="font" action="#">
<div>
<h3>مشخصات فردی</h3>
<section>
<div class="wizard-content">
<div class="row">
<div class="col m12 float">
<div class="row">
<div class="input-field col m12 s12">
<label for="firstName" class="dir w9">نام و نام خانوادگی</label>
<input id="firstName" name="firstName" type="text" class="required validate">
</div>
<div class="input-field col s12">
<label for="email" class="dir w9">پست الکترونیکی</label>
<input id="email" name="email" type="email" class="required validate">
</div>
<div class="input-field col s12">
<label for="phone_number" class="dir w9">تلفن تماس</label>
<input id="phone_number" name="phone_number" type="text" class="required validate">
</div>
<div class="input-field col s12">
<label for="telegram_id" class="dir w9">شناسه تلگرام</label>
<input id="telegram_id" name="telegram_id" type="text">
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</form>
</div>
</div>
</div>
</div>
</main>
</body>
</html>
$( document ).ready(function() {
var form = $("#example-form");
var validator = $("#example-form").validate({
errorPlacement: function errorPlacement(error, element) { element.after(error); },
rules: {
confirm: {
equalTo: "#password"
}
}
});
form.children("div").steps({
headerTag: "h3",
bodyTag: "section",
transitionEffect: "fade",
onStepChanging: function (event, currentIndex, newIndex)
{
form.validate().settings.ignore = ":disabled,:hidden";
return form.valid();
},
onFinishing: function (event, currentIndex)
{
form.validate().settings.ignore = ":disabled";
return form.valid();
},
onFinished: function (event, currentIndex)
{
var firstName = document.getElementById("firstName").value;
var email = document.getElementById("email").value;
var phone_number = document.getElementById("phone_number").value;
var telegram_id = document.getElementById("telegram_id").value;
$.ajax({
url:'confirm.php',
type:'POST',
data:{
firstName:firstName,
email:email,
phone_number:phone_number,
telegram_id:telegram_id
}
})
}
});
$(".wizard .actions ul li a").addClass("waves-effect waves-blue btn-flat");
$(".wizard .steps ul").addClass("tabs z-depth-1");
$(".wizard .steps ul li").addClass("tab");
$('ul.tabs').tabs();
$('select').material_select();
$('.select-wrapper.initialized').prev( "ul" ).remove();
$('.select-wrapper.initialized').prev( "input" ).remove();
$('.select-wrapper.initialized').prev( "span" ).remove();
$('.datepicker').pickadate({
selectMonths: true, // Creates a dropdown to control month
selectYears: 15 // Creates a dropdown of 15 years to control year
});
});
کد صفحه پذیرنده:
<?php
session_start();
error_reporting(E_ALL^E_NOTICE);
$redirectURL = 'index.php';
$errors = array();
if(!$_POST['firstName'] || strlen($_POST['firstName'])<3 || strlen($_POST['firstName'])>50)
{
$errors['firstName']='لطفا فیلد نام را پر کنید<br />باید بین 3 تا 50 کاراکتر باشد !';
}
if(!$_POST['email'] || !preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $_POST['email']))
{
$errors['email']='لطفا فیلد ایمیل را پر کنید !';
}
if(!$_POST['phone_number'] || strlen($_POST['phone_number'])<11 || strlen($_POST['firstName'])>13)
{
$errors['phone_number']='لطفا فیلد تلفن تماس را پر کنید<br />باید بین 11 تا 13 کاراکتر باشد !';
}
if($_POST['fromAjax'])
{
if(count($errors))
{
$errString = array();
foreach($errors as $k=>$v)
{
$errString[]='"'.$k.'":"'.$v.'"';
}
die ('{"status":0,'.join(',',$errString).'}');
}
echo '{"status":1,"redirectURL":"'.$redirectURL.'"}';
exit;
}
if(count($errors))
{
echo '<h2>'.join('<br /><br />',$errors).'</h2>';
exit;
}
header("Location: ".$redirectURL);
if(isset($_POST['firstName'])){
?>
<meta charset="utf-8">
<?php
if($_POST['firstName']!==''){
if($_POST['email']!==''){
if($_POST['phone_number']!==''){
include ("database/database.php");
$name=$_POST['firstName'];
$email=$_POST['email'];
$phone_number=$_POST['phone_number'];
if(isset($_POST['telegram_id'])){
$telegram_id=$_POST['telegram_id'];
}else{$telegram_id='';}
$sql="insert into table (name,email,phone_number,telegram_id) values ('$name','$email','$phone_number','$telegram_id') ";
$stmt=$db->prepare($sql);
$stmt->execute();
?>
<?php }
}
}
else{}
}
else{}
?>
ممنون


یه نمونه بهم میدی؟؟؟؟
اینکه سمت php چی بنویسم یا داخل قالب html چه کادری برا ارور تعیین کنم؟
ممنون میشم

$.ajax({
url: url,
type: 'post',
dataType: 'json',
data:{
firstName:firstName,
email:email,
phone_number:phone_number,
telegram_id:telegram_id
} ,
success: function(data) {
if(data){
// success message
} else {
// error message
}
}
});
برای سمت سرور هم در آموزش های استاد توضیح داده شده , کار خودتون رو که انجام دادید اگر اوکی بود با استفاده از json_encode یک پیام اوکی بفرستید اینور و اگه خطا داشت میتونید همین کار رو انجام بدید , البته خود ajax هم همچین قابلیتی رو داره که باید بیشتر در موردش تحقیق کنید.
این کار اینقدر ساده هست که با یه جستجوی بسیار معمولی هم به جواب های متفاوتی خواهید رسید پس جستجو رو فراموش نکنید که بخش مهمی از کار هست.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .