• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چگونه ارورهای php رو از سمت صفحه پذیرنده فرم ارسالی در ایجکس برگردونیم
#1
سلام.
من یک فرم دارم که با ایجکس سابمیت میشه.

مشکلم اینجاست که میخوام زمانی که فرم با موفقیت داخل دیتابیس ذخیره میشه یه پیام نشون بده که فرم با موفقیت ذخیره شده و یا اگه موفقیت آمیز نبوده یه پیام بفرسته که نا موفق بوده.

این کد ایجکس ارسال فرممه:

کد پی‌اچ‌پی:
<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(errorelement) { element.after(error); },
 
rules: {
 
confirm: {
 
equalTo"#password"
 
}
 }
 });
 
form.children("div").steps({
 
headerTag"h3",
 
bodyTag"section",
 
transitionEffect"fade",
 
onStepChanging: function (eventcurrentIndexnewIndex)
 {
 
form.validate().settings.ignore ":disabled,:hidden";
 return 
form.valid();
 },
 
onFinishing: function (eventcurrentIndex)
 {
 
form.validate().settings.ignore ":disabled";
 return 
form.valid();
 },
 
onFinished: function (eventcurrentIndex)
 {
 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({
 
selectMonthstrue// Creates a dropdown to control month
 
selectYears15 // 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'])<|| 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{}
?>
ممنون
  پاسخ
تشکر شده توسط :
#2
داخل تابع ایجکست بعد دیتا یک success تعریف کن و خروجی رو داخل یه دایو و یا جایی که میخوای نمایش بده
  پاسخ
تشکر شده توسط :
#3
من اینو اینطوری تعریف کردم.
کد پی‌اچ‌پی:
$.ajax({
  
urlurl,
  
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
  
}
 } 
}); 
سمت php که دستور رو میخواد بگیره چطور باید json رو بفرستم تا اینور بگیره؟
  پاسخ
تشکر شده توسط :
#4
شما با json چیکار داری اینجا ، شما فقط میای یه خروجی نمایش بدی خروجی data رو توی یه دایو نشون بده مثلا
کد پی‌اچ‌پی:
<div id="test" ></div>// محل نمایش خروجی 


$("#test").html(data); // نمایش نتیجه در آی دی مورد نظر 
  پاسخ
تشکر شده توسط :
#5
ببین داداش من تازه کارم اساسی.
100تا آموزشم دیدم اما توو این جیکوئری حسابی لنگم.

الان واقعا نفهمیدم چیشد

اگه میشه شما یه مثال صفر تا 100بزن برای همین کاری که من میخوام بکنم.

یه فرم با ایجکس فرستاده میشه به صفحه کانفیرم فرم.

میخوام با php اعتبارسنجی بشه.

اگه فیلد ها خالی بودن یا ساختارشون مناسب نبود ارور های فیلد ها رو بفرسته به صفحه قبلش
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۵ بهمن ۰۹, ۰۲:۰۶ ب.ظ)MRCanddy نوشته: ببین داداش من تازه کارم اساسی.
100تا آموزشم دیدم اما توو این جیکوئری حسابی لنگم.

الان واقعا نفهمیدم چیشد

اگه میشه شما یه مثال صفر تا 100بزن برای همین کاری که من میخوام بکنم.

یه فرم با ایجکس فرستاده میشه به صفحه کانفیرم فرم.

میخوام با php اعتبارسنجی بشه.

اگه فیلد ها خالی بودن یا ساختارشون مناسب نبود ارور های فیلد ها رو بفرسته به صفحه قبلش

کد php :
کد پی‌اچ‌پی:
        if( $validate ){ // if its valid
            
echo json_encode(array(
                
'success' => true,
                
'message' => 'فرم با موفقیت ثبت شد'
            
));
        }
        else{
            echo 
json_encode(array(
                
'success' => false,
                
'message' => 'خطا در فرم'
            
));
        } 

کد جی کوئری:
کد پی‌اچ‌پی:
$.ajax({
    
urlurl,
    
type'post',
    
dataType'json',
    
data:{
        
firstName:firstName,
        
email:email,
        
phone_number:phone_number,
        
telegram_id:telegram_id
    
} ,
    
success: function(data) {
        if( 
data.success ){
        
// success message
        
} else {
        
// error message
        
}

        
alert(data.message)
    } 
}); 
میثم محمودی | انجمن کد ایگنایتر فارسی
--------------------------
هرگز نمي توان با آدمهاي کوچک کارهاي بزرگ انجام داد
  پاسخ
تشکر شده توسط : MRCanddy


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان