PDA

View Full Version : سوال: استفاده از چند چک باکس با استفاده از آرایه



amirepsilon
پنج شنبه 24 اردیبهشت 1388, 21:48 عصر
سلام
دوستان من کدی رو میخوام که با آرایه نوشته شده باشه و تعداد چک باکس هایی رو که تیک خوردن رو برگردونه
یا مثلا 5 تا فیلد آپلود برای کاربر وجود داره
با استفاده از آرایه مشخص بشه که کاربر چندتاشو پر کرده

اگه راه دیگه ای هم هست لطفا بگید
ممنون

امیـرحسین
جمعه 25 اردیبهشت 1388, 00:24 صبح
مهمه که چطور attribute یا مشخصه name فیلدها رو مشخص می کنید. مثلا اگر چک باکسها رو اینطوری نامگذاری کنید:

<input name="checks[first]" type="checkbox" value="1st" />
<input name="checks[second]" type="checkbox" value="2nd" />
<input name="checks[third]" type="checkbox" value="3rd" />
اگه اشتباه نکنم با تابع count می تونید تعداد اجزای آرایه (اینجا checks) رو داشته باشید (ولی فکر نکنم :لبخند:) این روش مطمئن تر هست:

$count=0;
foreach($_POST['checks'] as $cks)
if( !empty($cks) )
$count++;

مشابه همین کار رو می تونید برای FILES هم انجام بدید.....

amirepsilon
جمعه 25 اردیبهشت 1388, 14:44 عصر
سلام امیر حسین جان
حالا اگه اینطوری بود چی ؟


<input name="checks[1]" type="checkbox" value="1st" />
<input name="checks[2]" type="checkbox" value="2nd" />
<input name="checks[3]" type="checkbox" value="3rd" />

من درواقع میخوام یه چیزی تو مایه های حذف دسته جمعی انجام بدم
ممنون

امیـرحسین
جمعه 25 اردیبهشت 1388, 19:23 عصر
فرقی نمی کنه. اگه مقدار name همه رو []checks هم بذارید، مانند کدهای شما عمل می کنه و با کدهای بالا شمارش میشه

amirepsilon
سه شنبه 29 اردیبهشت 1388, 19:11 عصر
سلام
دوست من ممنون
ولی در ورد دکمه delete سوال داشتم
چه ادرسی برای این دکمه بنویسم ؟
و آیا تمام چک باکس ها باید داخل یک فرم باشن ؟
لطفا توضیح بدید
ممنون

amirepsilon
دوشنبه 11 خرداد 1388, 15:04 عصر
دوستان من هنوز موفق نشدم!
میشه بیشتر برام توضیح بدید ؟

میشه بگید باید برای دکممه del چه کدی بنویسم ؟
ممنون

امیـرحسین
دوشنبه 11 خرداد 1388, 23:04 عصر
بله همه باید تو یک فرم باشند. PHP اطلاعات رو به action تگ <FORM> ارسال می کنه.

برای delete اگر منظورتون دیتابیس هست، مقدار value رو مشخصه سطر مثلا id تعیین کنید. توسط foreach ، ایدی های تیک خورده توی یک آرایه جمع کنید و همه رو با هم حذف کنید. یه چیزی شبیه این:

$IDs = array();
foreach($_POST['checks'] as $cks)
if( !empty($cks) )
$IDs[] = $cks;
mysql_query("DELETE FROM `table` WHERE `id` IN(" .join(',' , $IDs). ")");