تالار گفتمان مانشت
سؤال در مورد چک باکس در PHP - نسخه‌ی قابل چاپ

سؤال در مورد چک باکس در PHP - simorghsimorgh - 19 فروردین ۱۳۹۲ ۰۹:۱۳ ب.ظ

سلام دوستان
یکی از مسائلی که برام پیش اومده اینه که وقتی بخوام اطلاعات چک باکس رو توی دیتابیس ذخیره کنم، همیشه آخرین انتخاب توی ستون مربوط به "علایق" (به عنوان مثال) ذخیره میشه. به کد زیر نگاه کنید :
کد php:
علایق:<br />

ورزش<input name="intrest" type="checkbox" value="ورزش" />
هنر<input name="intrest" type="checkbox" value="هنر" />
تفریح<input name="intrest" type="checkbox" value="تفریح" />
تحصیل<input name="intrest" type="checkbox" value="تحصیل" /> 

به نظرتون باید چه تنظیماتی توی ستون table مربوط به "علایق" اانجام بدم که وقتی چند گزینه با هم انتخاب بشه، توی دیتابیس هم هر چند گزینه ذخیره بشه ؟

سؤال در مورد چک باکس در PHP - phoenix021 - 20 فروردین ۱۳۹۲ ۰۸:۲۴ ب.ظ

مشکل اینجاست که شما نام همه ی چک باکس ها رو گذاشتین intrest ، واسه همین همیشه آخری ذخیره میشه چون میاد جای قبلیش ، برای حل مشکل ، اسم چک باکس هاتون رو بزارین intrest1 , intrest 2 الی آخر و بعد هم وقت اینزرت کردن تو دیتا بیس ، تک تک هر چک باکس رو چک کنید و وارد دیتا بیس کنید ، برای مثال اگه intrest1 تیک خورده باشه تو دیتابیس مقدار true و اگه فرضا intrest2 تیک نخورده باشه مقدار false ذخیره میشه ، اگه باز مشکلی بود بپرسین

RE: سؤال در مورد چک باکس در PHP - simorghsimorgh - 20 فروردین ۱۳۹۲ ۰۹:۴۷ ب.ظ

(۲۰ فروردین ۱۳۹۲ ۰۸:۲۴ ب.ظ)phoenix021 نوشته شده توسط:  مشکل اینجاست که شما نام همه ی چک باکس ها رو گذاشتین intrest ، واسه همین همیشه آخری ذخیره میشه چون میاد جای قبلیش ، برای حل مشکل ، اسم چک باکس هاتون رو بزارین intrest1 , intrest 2 الی آخر و بعد هم وقت اینزرت کردن تو دیتا بیس ، تک تک هر چک باکس رو چک کنید و وارد دیتا بیس کنید ، برای مثال اگه intrest1 تیک خورده باشه تو دیتابیس مقدار true و اگه فرضا intrest2 تیک نخورده باشه مقدار false ذخیره میشه ، اگه باز مشکلی بود بپرسین

ممنون از راهنماییتون
برای اینکه هر کدوم از عناصر چک باکس که تیک بخوره ، true و اگر تیک نخوره false ذخیره بشه، باید نوع ستون مربوط به اون ها رو توی دیتابیس چی انتخاب کنیم؟ من binary انتخاب کردم ولی دو تا صفر ذخیره میشه واسه همه ی گزینه ها Undecided

سؤال در مورد چک باکس در PHP - phoenix021 - 20 فروردین ۱۳۹۲ ۱۱:۰۹ ب.ظ

(۲۰ فروردین ۱۳۹۲ ۰۹:۴۷ ب.ظ)simorghsimorgh نوشته شده توسط:  
(20 فروردین ۱۳۹۲ ۰۸:۲۴ ب.ظ)phoenix021 نوشته شده توسط:  مشکل اینجاست که شما نام همه ی چک باکس ها رو گذاشتین intrest ، واسه همین همیشه آخری ذخیره میشه چون میاد جای قبلیش ، برای حل مشکل ، اسم چک باکس هاتون رو بزارین intrest1 , intrest 2 الی آخر و بعد هم وقت اینزرت کردن تو دیتا بیس ، تک تک هر چک باکس رو چک کنید و وارد دیتا بیس کنید ، برای مثال اگه intrest1 تیک خورده باشه تو دیتابیس مقدار true و اگه فرضا intrest2 تیک نخورده باشه مقدار false ذخیره میشه ، اگه باز مشکلی بود بپرسین

ممنون از راهنماییتون
برای اینکه هر کدوم از عناصر چک باکس که تیک بخوره ، true و اگر تیک نخوره false ذخیره بشه، باید نوع ستون مربوط به اون ها رو توی دیتابیس چی انتخاب کنیم؟ من binary انتخاب کردم ولی دو تا صفر ذخیره میشه واسه همه ی گزینه ها Undecided

شما توی تعریف table تون ، برای هر سطر ، id = " interest1 رو توی سطر اول و id = "interest2" و الی آخر رو بنویسید ، بعد بر اساس اون نام id مقدار بگیرین از هر چک باکس ، ببینین مشکل حل نمیشه ؟

RE: سؤال در مورد چک باکس در PHP - simorghsimorgh - 22 فروردین ۱۳۹۲ ۱۰:۵۵ ق.ظ

(۲۰ فروردین ۱۳۹۲ ۰۸:۲۴ ب.ظ)phoenix021 نوشته شده توسط:  مشکل اینجاست که شما نام همه ی چک باکس ها رو گذاشتین intrest ، واسه همین همیشه آخری ذخیره میشه چون میاد جای قبلیش ، برای حل مشکل ، اسم چک باکس هاتون رو بزارین intrest1 , intrest 2 الی آخر و بعد هم وقت اینزرت کردن تو دیتا بیس ، تک تک هر چک باکس رو چک کنید و وارد دیتا بیس کنید ، برای مثال اگه intrest1 تیک خورده باشه تو دیتابیس مقدار true و اگه فرضا intrest2 تیک نخورده باشه مقدار false ذخیره میشه ، اگه باز مشکلی بود بپرسین

فعلا با همین راهنمایی کارم راه افتاد بسیار متشکرم از همکاری تون Smile

RE: سؤال در مورد چک باکس در PHP - gogooli - 20 خرداد ۱۳۹۴ ۱۲:۲۶ ق.ظ

می نویسم تا اگه کسی مشکل مشابه داشت برطرف شه...
شما باید name رو بصورت آرایه بنویسین یعنی بصورت زیر:
کد php:
علایق:<br />

ورزش<input name="intrest[]" type="checkbox" value="ورزش" />
هنر<input name="intrest[]" type="checkbox" value="هنر" />
تفریح<input name="intrest[]" type="checkbox" value="تفریح" />
تحصیل<input name="intrest[]" type="checkbox" value="تحصیل" /> 
و بعد سمت سرور با استفاده از foreach مقادیر را گرفته و مثلا با ; بهم بچسبانید و رشته حاصل ( در اینجا a$) را در ستون مورد نظر ذخیره کنید.
بعدا هر وقت خواستید از دیتابیس مقادیر را بخوانید بر اساس ; ، explode می کنید.
کد php:
$a "";
foreach (
$_POST['intrest'] as $intrest)
{
$a .=$intrest.";";



RE: سؤال در مورد چک باکس در PHP - sevda_z13 - 24 دى ۱۳۹۶ ۰۱:۴۸ ب.ظ

(۲۰ خرداد ۱۳۹۴ ۱۲:۲۶ ق.ظ)gogooli نوشته شده توسط:  می نویسم تا اگه کسی مشکل مشابه داشت برطرف شه...
شما باید name رو بصورت آرایه بنویسین یعنی بصورت زیر:
کد php:
علایق:<br />

ورزش<input name="intrest[]" type="checkbox" value="ورزش" />
هنر<input name="intrest[]" type="checkbox" value="هنر" />
تفریح<input name="intrest[]" type="checkbox" value="تفریح" />
تحصیل<input name="intrest[]" type="checkbox" value="تحصیل" /> 
و بعد سمت سرور با استفاده از foreach مقادیر را گرفته و مثلا با ; بهم بچسبانید و رشته حاصل ( در اینجا a$) را در ستون مورد نظر ذخیره کنید.
بعدا هر وقت خواستید از دیتابیس مقادیر را بخوانید بر اساس ; ، explode می کنید.
کد php:
$a "";
foreach (
$_POST['intrest'] as $intrest)
{
$a .=$intrest.";";


اگر همین چک باکس ها داخل یه حلقه باشه و به تعداد کاربرای موجود تکرار بشه.اون موقع هم همین کده شما جواب میده؟یا باید از یه روش دیگه استفاده کنیم؟

RE: سؤال در مورد چک باکس در PHP - gogooli - 24 دى ۱۳۹۶ ۱۱:۰۸ ب.ظ

(۲۴ دى ۱۳۹۶ ۰۱:۴۸ ب.ظ)sevda_z13 نوشته شده توسط:  اگر همین چک باکس ها داخل یه حلقه باشه و به تعداد کاربرای موجود تکرار بشه.اون موقع هم همین کده شما جواب میده؟یا باید از یه روش دیگه استفاده کنیم؟
منظورتون اینه که داشته باشیم.
کاربر۱:
چک باکس ورزش
چک باکس هنر
چک باکس تفریح
چک باکس تحصیل
کاربر ۲:
چک باکس ورزش
چک باکس هنر
چک باکس تفریح
چک باکس تحصیل
کاربر۳:
چک باکس ورزش
چک باکس هنر
چک باکس تفریح
چک باکس تحصیل
؟
اون وقت name همچنان آرایه است منتهی باید طوری در نظر بگیرید name رو که برای هر user متفاوت باشد. از user_id در name چک باکس ها استفاده شود و موقع ذخیره سازی هم یک ستون به نام user_id اضافه می شه.
کد:
<input name="intrest<?php echo $user_id; ?>[]" type="checkbox" value="ورزش" />