اگر از فرم ساز بی نظیر RSForm Pro استفاده کرده باشید آگاه هستید که امکانات بی نظیری به مدیر وب سایت می دهد و یکی از همان امکانات قابلیت اجرای کدهای سفارشی شده شما در هنگام قبل یا بعد از ارسال فرم می باشد.
فرض کنید در یک پروژه نیاز دارید بعد از ارسال موفقیت آمیز فرم ، یک سری کارهای سفارشی را انجام دهید؛ از اونجایی که در حال استفاده از یک کامپوننت جانبی هستید ممکنه فکر کنید که این امکان را ندارید و این موضوع قطعا به ضرر شما تمام خواهد شد؛ اما خوشبختانه RSForm این قابلیت را به شما می دهد و نیازی نیست نگران چیزی باشید.
به طور کلی شما به 3 وضعیت مختلف برای اجرای کدتان دسترسی دارید :
برای درک بهتر این موضوع ما یک مثال کاربردی را اجرا خواهیم کرد تا شما فواید استفاده از این قابلیت را به خوبی حس کنید.
به عنوان مثال در فرم شما یک فیلد به عنوان "شماره تلفن همراه" دارید که کاربر باید شماره موبایل خود را وارد کند و شما نیاز دارید که قبل از ذخیره فرم در پایگاه داده فیلد شماره موبایل وارد شده را بررسی کنید و اگر کاربر پیش شماره +98 اول را قرار نداد ، قبل از ذخیره آن را تغییر دهید و خودتان +98 را قرار دهید.
فرض کنید ما یک فرم با عناصر زیر ایجاد کرده ایم :
نام عناصر (منظور همان خصوصیت name عناصر در HTML می باشد) هر یک از عنصرهای درون تصویر بصورت زیر می باشد :
نام شما : firstname
نام خانوادگی : lastname
سن : age
موبایل : mobile
شما با خصوصیت name هر یک می توانید به آنها دسترسی داشته باشید؛ به کد زیر دقت کنید :
// Get First Name
$_POST['form']['firstname'];
// Get Last Name
$_POST['form']['lastname'];
// Get Age
$_POST['form']['age'];
// Get Mobile
$_POST['form']['mobile'];
برای دسترسی به name هر عنصر در HTML می توانید در طریق زیر آنها را مشاهده کنید :
خب حالا متوجه شدیم چطور می تونیم به مقدار درون فیلد مربوطه دسترسی پیدا کنیم کد اعتبار سنجی خودمان را از مسیر ویرایش فرم مورد نظر » تب خواص » زیر منوی اسکریپت ها » بخش پردازش فرم قبل از داده ، قرار می دهیم :
کد زیر را در کادر مشخص شده (طبق عکس بالا) قرار دهید.
توجه : عبارت mobile ، خصوصیت name فیلد موبایل موجود در فرم تست ما می باشد و این گزینه اگر در فرم شما متفاوت است باید تغییر دهید.
if(!preg_match('/(+98)/', $_POST['form']['mobile'], $matches, PREG_OFFSET_CAPTURE)) {
$_POST['form']['mobile'] = "+98".$_POST['form']['mobile'];
}
حال اگر یکبار فرم را ارسال کنیم می بینید که عبارت +98 به اول شماره تلفن همراه اضافه شده است :
با این روش هر تغییری که بخواهید می توانید قبل از ذخیره اطلاعات فرم در پایگاه داده ، روی آنها بدهید.
اگر کد PHP خودتان را در کادر بخش "فراخوانی اسکریپت پس از پردازش موفق" قرار بدید ، زمانی که فرم در دیتابیس ذخیره شد اجرا خواهد شد.