در مطلب اداره کردن فرم HTML در PHP بخش نخست در مورد فرستادن داده ها از طریق فرم های اچ تی ام ال توسط متد POST و استفاده از آرایه سراسری POST_$ برای دسترسی به مقدار فرم های اچ تی ام ال صحبت کردیم و توضیح دادیم زمانی که فرم اچ تی ام ال واگذار (Submit) یا فرستاده می شود، به ازای هر تگ درون فرم، یک کلید همنام با خصوصیت name آن تگ، درون آرایه سراسری POST_$ ایجاد می شود.

همچنین توضیح دادیم اگر تنها یک Checkbox را ایجاد کرده باشیم و در زمان فرستادن آنرا انتخاب کرده باشیم، مقدار رشته on به اسکریپت پی اچ پی فرستاده می شود. ولی در این مطلب می خواهیم نشان دهیم که می توانیم گروهی از checkbox ها و radio button ها را تعیین کنیم و به ازای هر checkbox یا radio button یک مقدار را نیز توسط خصوصیت value تعیین کنیم. تفاوت checkbox ها و radio ها در این است که با داشتن چندین checkbox می توان تا چندین یا همگی را انتخاب کرد ولی با داشتن چندین radio button تنها می توان یکی را از میان همگی انتخاب کرد.

همچنین گفتیم باید برای تگ input از نوع submit خصوصیت value را مقدار دهی کنیم تا بتوانیم سپس بررسی کنیم که آیا دگمه واگذار (Sbumit) یا کلیک شده است. در این حالت نیز یک کلید همنام با مقدار خصوصیت value در آرایه POST_$ ایجاد می شود. در این مطلب می خواهیم آموزش دهیم چگونه داده های فرم ها را دریافت و سپس بوسیله PDO آنها را درون پایگاه داده ذخیره کنیم. در ادامه اسکریپت SQL برای ایجاد جدول نشان داده شده است که می توانید از اینجا دانلود کنید.

ایجاد فرم اچ تی ام ال

کدهای زیر فرم اچ تی ام ال را نشان می دهد. همانطور که می بینید چهار تگ input از نوع text و email هستند. در اسکریپت SQL ایجاد جدول، چهار ستون نخست از نوع VARCHAR برای این چهار فیلد تعریف شده اند. توجه کنید مقداری که از هر فیلد برگشت داده می شود به صورت یک رشته است، بنابراین می توانیم آنها را درون ستون ای VARCHAR ذخیره کنیم.

در شکل زیر دو گروه، یکی شامل دو radio button و دیگری شامل شش checkbox می شود. در شکل می بینید که خصوصیت name هر دو radio button دارای یک مقدار (در اینجا gender) است ولی مقدار خصوصیت های value هر دو متفاوت، یکی male و دیگری female است. توجه کنید تنها می توانید یکی از دو radio button را انتخاب کنید که در نهایت یا مقدار male یا female در ستون gender ذخیره می شود.

برای اینکه بتوانیم گروهی از checkbox ها را داشته باشیم، می بایست مقدار خصوصیت name همگی یکسان و البته به صورت آرایه مانند []languages تعریف شده باشند. در شکل زیر می بینید که اگر یک یا چندین chekbox را انتخاب کنید، خروجی یک آرایه معمولی خواهد بود که هر عنصر آن برابر با یکی از مقدارهای خصوصیت های value مربوط به checkbox های انتخاب شده است. در واقع مطابق شکل زیر می توانید ببینید که مقدار کلید languages در آرایه POST_$ به صورت یک آرایه معمولی است.

در نهایت نوبت به تگ textarea در کد اچ تی ام ال می رسد تا داده های آن را در ستون ذخیره کنیم ولی از کدام نوع ستون باید برای نگهداری داده های textarea استفاده کنیم؟ چون textarea چندین خط را دریافت می کند، پس باید از نوع TEXT به جای VARCHAR استفاده شود. کدهای زیر بخشی از کدهای پی اچ پی هستند که نخست به پایگاه داده متصل شده و سپس مقدار هر فیلد فرم اچ تی ام ال را توسط آرایه POST_$ دریافت می کنند.

تابع ()implode و ()explode در پی اچ پی

گام پایانی – درج داده ها درون جدول

در کدهای زیر متغیر sql$ کوئری SQL برای درج داده ها درون جدول را در خود نگه می دارد و سپس توسط متد ()prepare کوئری برای اجر شدن توسط متد ()execute آماده می شود. سپس بررسی می شود که آیا کوئری توسط متد ()execute به درستی اجرا شده است یا نه و پیغام مناسب نشان داده می شود.