چک باکس در html
فرمهای HTML ساختار ساده ای دارند. تشکیل شده اند از یه سری المان ساده (معمولا input ) که وقتی کاربر دکمه ارسال (یه عنصر input با نوع submit ) رو میزنه فرستاده میشن به سمت سرور، و البته این که به کجا فرستاده بشه یا اینکه چطور فرستاده بشه توی خصایص فرم مشخص میشه. (خصیصه action برای اینکه فرم به کجا فرستاده بشه و خصیصه method برای اینکه مشخص کنید فرم چطور باید ارسال بشه)
این وسط، وقتی فرم ارسال میشه، کلیه عناصری که اسم دارن (یعنی همه المانهای فرمی که خصیصه name براشون تنظیم شده ) به سمت سرور ارسال میشن، ولی این وسط یه استثنا هست، و اون هم عنصر checkbox.
این عنصر اگه تیک زده بشه مقدار خودشو میفرسته و اگه تیک زده نشه مقدارش فرستاده نمیشه. معمولا مشکلی پیش نمیاد، طرف سرور کافیه بررسی کنید که آیا این اسم تو آرایه _POST یا _GET (بسته به متدی که فرم ارسال میشه) هست یا نه. اگه بود، مقدارش هر چی باشه یعنی چک خورده، اگه نبود یعنی چک نخورده.
ولی اگه نخواید از این روش استفاده کنید چی؟ یعنی اگه بخواید مثلا وقتی چک نخورد، مقداری فرستاده بشه (مثلا 0 ) و اگه چک خورد مقداری ارسال بشه (مثلا ۱ ) .
یه چیزی دیدم تو فرمهای Zend Framework که این مشکل رو برطرف میکرد. برای اینکار کافیه یه عنصر از نوع hidden بالاتر از عنصر checkbox بگذارید، دقیقا به نام همون عنصر checkbox فقط مقدارش رو بگذارید همون مقداری که میخواید وقتی تیک نخورده ارسال بشه (مثل صفر تو مثال ما) بعد عنصر chekbox هم بگذارید و مقدار حالت تیک خورده رو توش بگذارید (تو این مثال یک) خوب اگه تیک نخوره، فرم که ارسال میشه، checkbox اصلا فرستاده نمیشه، ولی عنصر hidden که هست :) در مقابل وقتی چک خورده باشه، عنصر hidden چون قبل از عنصر checkbox هست، مقدارش با مقدار checkbox رونویسی میشه. کد باید اینطور باشه :
<form action="/some/address" method="post">
<input type="hidden" name="mycheckbox" value="0" />
<input type="checkbox" name="mycheckbox" value="1" />
</form>
برای سادگی کل قسمتهای زاید فرم، حذف شده ولی شما کل فرمتون رو بگذارید، فقط یادتون باشه که عنصر hidden باید قبل از عنصر chekbox باشه ، اسمشون هم یکی باشه.
هیچ دنبالکی فرستاده نشدهاست.
در 7 ماه پیش - ۵ نظر
امروز درگیر یک کد بودم شبیه این : به نظر شما خروجیش چیه؟؟؟ یعنی اصلا چیزی باید چاپ بشه یا نه؟ من معتقدم که نباید چیزی چاپ بشه. یعنی شرط if اصلا درست نیست که بخواد برسه به echo ولی مساله مسخره اینه که isset میگه این ایندکس وجود داره و -برداشت شخصی من اینه…
در 11 ماه پیش - ۳ نظر
از نکاتی که پیشنهاد میشه برای بالا بردن سرعت یه سایت این دو مساله سادست: ۱- اضافه کردن Expire Header به فایلها، و خصوصا یک زمان دور برای فایلهای استاتیک، مثلا عکسها و فایلهای css و جاوااسکریپت. البته بد نیست برای فایلهای php و html هم این زمان رو تعیین کنیم ولی نه چندان دور.…
در 1 سال پیش - ۱۱ نظر
یه پرسشنامه برای گرفتن چند تا برنامه نویس PHP طرح کرده بودم (بنا به خواست یه کارفرما). چند تا سوال در زمینه PHP هم پرسیده بودم، یکیش همون قضیه اولویت عملگرها بود و دقیقا کدی که اینجا هست رو پرسیده بودم خروجیش چی میشه، که هیچ کس درست جواب نداده بود. (برام زیاد دور از…
در 1 سال پیش - یک نظر
حتما دو تا تابع echo و print رو میشناسید. این دو تا عملا یه کار رو انجام میدن. پس چرا شدن دو تا تابع؟ تفاوتشون چیه؟؟ خوب من سعی میکنم که توضیح بدم این قضیه رو. شباهتها هر دو تابع نیستن :) جزئی از ساختار زبانی هستن. یعنی میشه بدون پرانتز فراخوانیشون کرد ولی استفاده…
در 1 سال پیش - بدون نظر
توی ویندوز کوچک و بزرگ بودن حروف در اسم فایلها تاثیری نداره. ولی توی لینوکس این یه کم متفاوته، مثلا تو ویندوز TEST.php و test.php یکی هستن اگه به عنوان اسم فایل استفاده بشن. خودمونی تر! تو یه فولدر نمیشه دو تا فایل رو همزمان به این دو اسم ایجاد کرد، ولی تو لینوکس میشه.…
در 1 سال پیش - بدون نظر
بارها شده که سعی کردم توصیه کنم به استاندارد سازی صفحات HTML . مساله اصلی استفاده تگهای درسته. اصولا چرا میگن یه تگ رو بهتره استفاده نکنید، به جاش از یه سری تگ دیگه استفاده کنید. برگردیم به هدف HTML. اوایل هدف از HTML بیشتر نمایش اطلاعات بود و شکل دهی به اونها. به همین…
در 1 سال پیش - ۲ نظر
یکی از مشکلاتی که برنامه نویسهای تازه کار با اون خیلی برخورد میکنن، طرز برخورد PHP با اپراتورهای منطقیه. برای نمونه == که برای بررسی اینه که دو متغیر با هم برابرن یا نه. کد ساده ای رو در نظر بگیرید مثل : و خیلی ساده اینکه اینها برابرند و شرط درسته. در حقیقت PHP…
در 1 سال پیش - ۳ نظر
یه چند وقتی هست که مدام درگیر کارهای امنیتی، خصوصا برای PHP هستم. این دفعه میخوام یه مشکل کوچیک رو توضیح بدم. خیلی ها معمولا اینکار رو انجام میدن (دست کم کدی که من امروز دیدم اینطوری بود! ) : این کد، بررسی میکنه یه تابع دسترسی به این صفحه رو داره، اگر نه پاسش…
در 1 سال پیش - ۸ نظر
همونطور که میدونید توی PHP برای اپراتور OR دو نسخه وجود داره، وشاید کمتر کسی بدون که اینها دوتا از لحاظ طرز عمل تفاوتی ندارن، ولی اولویت عملیاتی متفاوتی دارن .(چند وقت پیش یه بحثی توی فروم iranphp.org مطرح شد در اینباره.) به عبارتی خیلیها درست نمیتونن نتیجه این کد رو حدس بزنن : پاسخ…
در 1 سال پیش - ۱۰ نظر
مقدمه باور کنید دست خودم نبود!!! هدفم هم اصلا خرابکاری نیست. بیشتر آزمایشه و اطلاع رسانی. من چیکار کنم آخه؟ وقتی اینقدر ساده میشه امنیت یه وب سایت رو به مخاطره انداخت! هدف من آموزش این نیست که چطور خرابکاری کنید، هدفم اینه که کمک کنم این مشکل برطرف بشه. بحث اصلی : جلسات معمولا…
در 1 سال پیش
عجب رکب فرنگی!
خود Browser گیر نمیده که دوتا فیلد با نام مشابه وجود داره؟!
موافقید یا نه :
0
0
در 1 سال پیش
نه. بروزر مشکلی نداره. اصولا هیچ بروزری به html اعتراض نمیکنه، جاوا اسکریپت چرا ولی html نه. البته این تو هیچ جا نوشته نشده که دو تا اسم یکسان اشتباهه. به عبارتی این هیچ استانداردی رو نقض نمیکنه که بخواد غلط باشه!
موافقید یا نه :
0
0