نمایش نتایج 1 تا 17 از 17

نام تاپیک: منو برای کار با checkbox ها راهنمایی کنین

  1. #1
    کاربر دائمی آواتار ahmadbadpey
    تاریخ عضویت
    مهر 1387
    محل زندگی
    homePage
    سن
    34
    پست
    299

    منو برای کار با checkbox ها راهنمایی کنین

    با سلام خدمت دوستان عزیز تر از جان
    یه سوال . من برای سایتم قسمتی برای عضویت دارم که مشخصات اعضا بوسیله اون در جدولی به نام members در دیتابیس ذخیره میشه . حالا وقتی که می خوام اعضا سایت رو مدیریت کنم (منظورم حذف و ویرایش و...) می خوام توسط یک جدول که ستون اون از یک checkbox در جلوی نام هر کاربر هست و یک دکمه در پایین جدول بتونم تمام یا تعدادی از اعضا رو انتخاب و توسط اون دکمه اوها رو حذف یا ویرایش کنم . یه مثال ساده مثل ایمیل های تو یاهو که هر کدومشون یه checkbox جلوشون دارن و به راحتی میشه با انتخاب یکی یا همه اونا و زدن یه دکمه اونا رو حذف کرد . ختم کلام اینکه چه کدی بنویسم که با زدن اون دکمه اون اعضایی که check box شون تیک داره رو حذف کنه .

  2. #2

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    شما میتونید ابداعا مقدار عناصر checkbox رو برابر با کلید یکتای جدول (به عنوان مثال id) قرار بدید .
    بعد از اون می تونید چک کنید اگه تیک خورده رکوردی که کلیدش برابر با نام اون checkbox هست رو ویرایش یا حذف کنید


    $ArrayOfKeys = array();
    if(isset($_POST['CheckBox1']))
    $ArrayOfKeys[0] = $_POST['CheckBox1']; // That value is a key
    if(isset($_POST['CheckBox2']))
    $ArrayOfKeys[1] = $_POST['CheckBox2']; // That value is a key
    $SQL = "DELETE FROM table ";
    for($k=0; $k<count($ArrayOfKeys); $k++){
    $Cond = $k == 0? ' WHERE ': ' AND ';
    $SQL .= ($Cond.' key = '.$ArrayOfKeys[$k]);
    }
    بنده خلاصه گویی کردم . شما می تونید خیلی داینامیک تر هم عمل کنید.

  3. #3
    کاربر دائمی آواتار as13851365
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    لیبدرا
    سن
    36
    پست
    533

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    ساده ترین راهش استفاده از آرایه است به کد زیر نگاه کن :
    کد HTML:
    <input type="checkbox" name="checkbox1[]" id="box1" value="<?php echo $a['id'];?>" />
    و در اون طرف از یه کدی مانند زیر استفاده کن :

    $a=$_POST['checkbox1'];
    if(isset($a))
    {
    for($i=0;$i<count($a);$i++)
    if(!is_numeric($a[$i]))
    {
    header("location: index.php");
    exit;
    }
    $ss=implode(',',$a);
    $q="select * from nazar1 where id in ($ss)";
    }
    else
    header("location: index.php");

    با استفاده از کد بالا شما لیستی از رکوردهایی رو که کاربر انتخاب کرده رو دارید می تونید هر کاری خواستید رو انجام بدید ( بقیش فقط نیاز کمی به آشنایی با دستورات mysql دارد)

  4. #4
    کاربر دائمی آواتار ahmadbadpey
    تاریخ عضویت
    مهر 1387
    محل زندگی
    homePage
    سن
    34
    پست
    299

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    آقا با تشکر از شما
    میشه یه کم بیشتر در مورد کد بالا توضیح بدین مثلا checkbox[] چیکار می کنه ؟ یا متغیر های a توی کد html با کد php یکی هستند . خلاصه کد رو بی زحمت خط به خط برام توضیح بدین ؟ آخه من اولای راهه php ام .

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1386
    محل زندگی
    تهران، رشت
    پست
    711

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    دوست عزیز.
    در تاپیک‌های زیادی در این مورد تذکر داده شده که این‌جا کلاس آموزش نیست. انجمن و برای رفع اشکال.
    اگر دوستان لطف می‌کنند کد را برای شما می‌نویسند، حداقل انتظاری که از شما می‌ره اینه که تحلیل کد رو خودتون انجام بدید.

    من هم اول راه هستم. ولی بیش از این‌که سوال بپرسم و کد بخواهم، خودم تحقیق می‌کنم. خدا را شکر با وجود اینترنت انواع و اقسام کدهای آماده وجود دارند که تنها زحمت تحلیل و بررسی کدها برای امثال من باقی می‌مونه. اگر تحلیلش رو هم بخوام کسی دیگری برای من انجام بده که دیگه هیچی.!

  6. #6

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    دوست عزیز
    وقتی متغیری رو می خواین بصورت آرایه تعریف کنید از این روش استفاده می کنید.
    موفق باشید
    ما را نه غم دوزخ و نی حرص بهشت است!
    www.yaqubian.com

  7. #7
    کاربر دائمی آواتار as13851365
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    لیبدرا
    سن
    36
    پست
    533

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    در تائید گفته های دوست گرامی sama01 و آقای یعقوبیان نظر شما رو به مطالب زیر جلب می کنم

    ببینید ما در اول کار اطلاعات رو از بانک می خونید و در یک صفحه نمایش می دیم حالا من برای خوندن اطلاعات از یک حلقه استفاده می کنم مانند :

    while($a=mysql_fetch_array($r))
    {
    echo "<input type=\"checkbox\" name=\"checkbox1[]\" id=\"box1\" value=\"<?php echo $a['id'];?>\" />";
    }

    حالا در حلقه بالا اطلاعات مربوط به رکورد ها رو از بانک می خونیم و چاپ می کنیم حالا من در بانک فیلدی با نام ID دارم که کلید است و مقدار ID رو در قسمت value مربوط به checkbox می نویسم با این کار وقتی که این صفحه ارسال می شه اگر دقت کنید مقادیر مربوط به value هر checkbox ارسال می شه حالا من در صفحه بعد که می خوام این اطلاعات دریافتی رو پردازش کنم اول مقدار checkbox های ارسال شده رو که به صورت آرایه از صفحه قبل ارسال شده رو دریافت می کنم :

    $a=$_POST['checkbox1'];

    بعد بررسی می کنم ببینم آیا checkbox ارسال شده است یا نه ؟

    if(isset($a))

    اگر ارسال شده بود کد زیر رو اجرا می کنم ( در غیره این صورت با دستور header برگشت می دم به صفحه قبلی.)
    این کد اول مقادیر ارسالی به صفحه رو چک می کنه ( برای اطمینان بیشتر ) از آنجایی که ما مقدار ID رو که به صورت عددی است رو به checkbox ها دادیم پس مقدار ارسال شده حتما باید از نوع عدد باشد برای چک کردن از کد زیر استفاده می کنم :

    for($i=0;$i<count($a);$i++)
    if(!is_numeric($a[$i]))
    {
    header("location: index.php");
    exit;
    }

    بعد از اجرای تکه کد قبلی یعنی اگر تمام ورودی ها عدد بود حالا باید این عدد ها رو که به صورت آرایه داریم رو به صورت یک رشته با علامت جدا کنند , تبدیل کنیم تا در دستورات sql خود ازش استفاده کنیم !
    برای این کار از دستور زیر استفاده می کنیم ( تبدیل آرایه به رشته )

    $ss=implode(',',$a);

    حالا ما مقادیری رو که کاربر انتخاب کرده و ارسال کرده رو داریم به راحتی می تونید از آنها استفاده کنیم .

    where id in ($ss)

    این قسمت از کد رو هم که معلومه اگر کمی با sql آشنا باشید مشکلی نخواهید داشت!

    امیدوارم که مشکل شما حل شده باشد.

  8. #8

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    سلام يه سوال داشتم: چرا اينجا:
    name="checkbox1[]"
    نام checkbox را اينجوري داده ولي اينجا :
    $a=$_POST['checkbox1'];
    اينجوري تحويل گرفته؟ ********************* يه سوال هم داشتم اونم اين بود اگه ما تو فرم ورودي بيش از يك checkbox داشته باشيم چه جوري سمت سرور اينارو تحويل بگيريم؟ منظورم اينه كه ما چه جوري ميتونيم ceckbox ها را به آرايه تحويل بديم؟ بزاريد بيشتر توضيح بدم. فرض كنيد ما به تعداد اطلاعات داخل بانكمون به هنگام نمايش براي حذف يا تاييد يك checkbox قرار بديم. حالا ما نميدونيم اين طلاعات چندتاست،پس بايد بيايم name اين checkbox ها را به طور دايناميك به حسب يك فيلد شمارنده بدهيم حالا تو سمت سرور ما نميدونيم كه اين checkbox ها چند تا هستند يا نامشون چيه!!! كه به تعداد يا نامهاي آنها يكي يكي اطلاعات را از فرم بگيريم سمت سرور چطوري اطلاعات را به اون شكلي كه گفتم دريافت كنيم؟؟؟؟

  9. #9
    کاربر دائمی آواتار shahriyar3
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    سن
    38
    پست
    720

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    جواب سوال اول كار با متد پست
    http://www.w3schools.com/php/php_post.asp
    سوال دومتون هم اگر شما بصورت دستي checkbox ها رو ايجاد كرده باشيد پس حتما ميدونيد كه چند تان
    اما اگه مخواهيد بدونيد كه كدومشون تيك خورده كافي مقدار ارسالي توسط متد پست رو با خالي مقايسه كيند تا متوجه بشيد (اگر خالي نباشند حتما مقدار دارن)
    البته راه هاي ديگه هم داره
    موفق باشي.

  10. #10
    کاربر دائمی آواتار as13851365
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    لیبدرا
    سن
    36
    پست
    533

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    مشکل شما این است که مطالب رو به درستی نخونید اگر شما پست 6 رو مطالعه کنید به سوال خودتان جواب خواهید داد

    شرمنده جواب shahriyar3 رو ندیده بودم وقتی که جواب دادم پست شما ( shahriyar3 ) رو دیدم

  11. #11

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    جواب سوال اول كار با متد پست
    http://www.w3schools.com/php/php_post.asp
    سوال دومتون هم اگر شما بصورت دستي checkbox ها رو ايجاد كرده باشيد پس حتما ميدونيد كه چند تان
    اما اگه مخواهيد بدونيد كه كدومشون تيك خورده كافي مقدار ارسالي توسط متد پست رو با خالي مقايسه كيند تا متوجه بشيد (اگر خالي نباشند حتما مقدار دارن)
    البته راه هاي ديگه هم داره
    موفق باشي.
    مثل اينكه درست سول منو را نخوندي يا متوجه نشدي
    اونقدم ميتدي نيستم كه ندونم بره چي با post تحويل گرفته من دارم ميگم اونجا تو فرم ورودي اسم checkbox را اينجوري گزاشته:

    name="checkbox1[]"

    ولي اون دو تا براكد را سمت سروز مد نظر نگرفته
    يه نگاه به كد بندازيد
    ***************************
    :::در مورد سوال دومم:::
    يه چيز مثل ياهو ميل را فرض كنيد
    من كه نميدونم چه تعداد نظراتي يا نامه هايي براي كاربر اومده پس بايد بيام اونايي كه تايد نشده را با php بخونم حالا من نميتونم براي هر چك باكس فقط يك نام بزارم
    پس بايد براي هر كدوم يه نام مختص بزارم اين نام رو هم با php ميام بر حسب يك فيلد شمارنده قرار ميديم .

    حالا وقتي ميخوام اين تغييرات(تاييد،حذف و...) را بر روي بانك اعمال كنم
    اين اطلاعات فرم ورودي را به سمت سرور ميفرستم .
    اينجا ديگه من نميدونم به چه تعداد بايد از متغير سراسريpost استفاده كنم و نام كدوم چك باكس را براي عمليات به كوئري بفرستم(چون نام و تعداد چك باكس ها را نميدونم)
    پس بايد به صورت داينمايك باشه
    من تو اين دايناميك بودنش گير كردم

    اميدوارم منظورمو متوجه شده باشيد
    ممنون ميشم كمك كنيد چون بد گير كردم


    مشکل شما این است که مطالب رو به درستی نخونید اگر شما پست 6 رو مطالعه کنید به سوال خودتان جواب خواهید داد

    شرمنده جواب shahriyar3 رو ندیده بودم وقتی که جواب دادم پست شما ( shahriyar3 ) رو دیدم
    از شما هم سپاسگزام
    ولي اون پست را هم خونده بودم ولي ربطي ه اين سوال من نداره

  12. #12
    کاربر دائمی آواتار shahriyar3
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    سن
    38
    پست
    720

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    جهت اطلاعتون ميگم فقط تو هر صفحه ياهو دقيقا 25 تا ايميل با چك باكس وجود داره چه خونده شده چه خونده نشده مگر اينكه تعداد كل ميل ها كمتر از 25 باشه .
    شما هم ميتونيد براي اطلاعاتتون محدوديت اعمال كنيد . مهم نيست چند هزار نامه باشه
    نمايش اطلاعات db بصورت <123> قبلا توسط دوستان توضيح داده شده
    شما فقط كافي به ازاي هر subject كه از db با كوئري ميگيريد يك خط هم html كنارش بذاريد
    https://barnamenevis.org/showthread.php?t=126658

    موفق باشي
    آخرین ویرایش به وسیله shahriyar3 : چهارشنبه 15 آبان 1387 در 23:33 عصر

  13. #13

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    جهت اطلاعتون ميگم فقط تو هر صفحه ياهو دقيقا 25 تا ايميل با چك باكس وجود داره چه خونده شده چه خونده نشده مگر اينكه تعداد كل ميل ها كمتر از 25 باشه .
    نمايش اطلاعات db بصورت <123> قبلا توسط دوستان توضيح داده شده
    شما فقط كافي به ازاي هر subject كه از db با كوئري ميگيريد يك خط هم html كنارش بذاريد
    نميدونم من بد توضيح ميدم يا شما متوجه نميشيد
    دوست عزيز من منظورم Pageintation نيست.
    اينارو خودم بلدم

    من اون مثالي كه از ياهمو ميل زدم منظورم صفحه بنديش يا تعداد نامه ها در صفحه نبود(خواهشآ سوال را درست بخونيد).
    منظور من از اون صفحه چك باكس ها بود.
    اصلآ شما ياهو ميل را از ذهنت بيار بيرون

    ببين شما فرض كن براي ادمين سايت روزانه 1000 تا نظر مياد
    ما ميخوايم اين نظرات را براي ادمين نشون بديم جوري كه ادمين اين نظرات را تاييد كنه بعد اين نظرات براي همه نمايش داده بشه ويا اينكه اينارو حذف بكنه.
    اين تاييد كردن هم اينطوره كه اگه ادمين چك باكس مقابل يه نظري رو تيك زد معلومه كه تاييد شده اگر نه پس تاييد نشده.
    خوب من ميام براي هر نظري كه از بانك خونده ميشه يه چك باكس قرار ميدم براي شناسايي چك باكس هاه يه نام مختص به خودش بهش ميدم كه در اصل اين نام را هم من بهش نميدم اين نام را بر حسب id اون نظر از بانك ميخونم و بهش ميدم.
    حالا تو سمت سرور اگه تعداد چك باكس يكي باشه و نامشو بدونيم ، اينجوري اسمشو ميخونيم:

    $_POST['نام اون چك باكس']

    ولي وقتي تعداد چك باكس ها بره بالا و در هر بار اين نامها تغيير كنه نميشه كه الكي يه اسم بديم يا بيايم n تا post_$ بنويسيم .
    پس ما بايد به صورت دايناميك اينارو دريافت كنيم و بر حسب اون عمليات رو روي پايگاه خود اعمال كنيم


    خواهشآ درست بخونيد اين براي بار سومه كه توضيح ميدم ديگه نميدونم چه جوري بايد توضيح بدم
    از اساتيد درخواست ميشه كار مارو رها بندازن بد گير كردم

  14. #14
    کاربر دائمی آواتار as13851365
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    لیبدرا
    سن
    36
    پست
    533

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    نمی دونم چرا این دوست گرامی persian_farvahar نمی خواد متوجه بشه !
    عزیزم ببین کلا قضیه این است که اون دستوراتی که من گفتم ( در پست های قبلی ) کلا برای این جور کارها نوشته شده .

    یعنی ما مثلا نمی دونیم چند تا checkbox در صفحه داریم ( لازم هم نیست بدونیم ) خوب من اول اطلاعات رو از دیتابیس می خونم و بعد به اعزای هر رکورد یک checkbax با نام یکسان برای همه مثلا checkbak1[] قرار می دم ولی مقدار value هر چک باکس رو با مقدار ID رکورد مورد نظر مقدار دهی می کنم .

    حالا مثلا 1000 تا checkbox در صفحه وجود دارد و کاربر بسته به خودش یک تعدادی رو انتخاب می کنه و برای مثلا حذف ارسال می کنه حالا چه چیزهایی ارسال می شه ؟ خوب در این جا مقدار value تمام checkbox هایی که انتخاب شده اند به صورت آرایه ( چون تمام checkbox ها از یک نام یکسان همرا با [] استفاده کردن پس یک آرایه هستن ) ارسال می شه من در صفحه بعد این آرایه رو در یک آرایه دیگر با دستور post می گیرم و بعد مقدار value هر حانه از آرایه می شه شماره رکورد انتخاب شده !

    مشکل شما بیشتر مربوط می شه به ارسال المنتها به صورت آرایه به صفحه که اگر در این باره کمی مطالعه کنید دیگر شاهد چنین سوالاتی نخواهید بود

    بهتر است شما از آرایه استفاده کنید تا نام هایی مانند $_POST['نام اون چك باكس']

  15. #15

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    مشکل شما بیشتر مربوط می شه به ارسال المنتها به صورت آرایه به صفحه که اگر در این باره کمی مطالعه کنید دیگر شاهد چنین سوالاتی نخواهید بود
    بله
    مشكل من اينجا بود
    باز هم ممنون از شما دوست عزيز

  16. #16
    کاربر دائمی آواتار binboy
    تاریخ عضویت
    دی 1387
    محل زندگی
    بنده نواز
    پست
    176

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین

    نقل قول نوشته شده توسط as13851365 مشاهده تاپیک
    ساده ترین راهش استفاده از آرایه است به کد زیر نگاه کن :
    کد HTML:
    <input type="checkbox" name="checkbox1[]" id="box1" value="<?php echo $a['id'];?>" />
    و در اون طرف از یه کدی مانند زیر استفاده کن :

    $a=$_POST['checkbox1'];
    if(isset($a))
    {
    for($i=0;$i<count($a);$i++)
    if(!is_numeric($a[$i]))
    {
    header("location: index.php");
    exit;
    }
    $ss=implode(',',$a);
    $q="select * from nazar1 where id in ($ss)";
    }
    else
    header("location: index.php");
    با استفاده از کد بالا شما لیستی از رکوردهایی رو که کاربر انتخاب کرده رو دارید می تونید هر کاری خواستید رو انجام بدید ( بقیش فقط نیاز کمی به آشنایی با دستورات mysql دارد)
    سلام
    تا حالا که چند تا پست زدم برای مشکلاتم متاسفانه یکیشو جواب ندادن علتش را نمی دونم!!
    به امید جواب:
    یک کدی شبیه کد معرفی شده در بالا دارم و کارشم تیک چند ستون برای حذف است.
    حالا تو صحفه select ستون ها را با حلقه while فراخوانی کردم و می خوام کد زیر را برای تکرار چک باکس با آیدی در این حلقه بزارم :
    <input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>">
    کد حلقه while :
    <?php
    while($row = mysql_fetch_array($result))
    {

    echo '<div class="nav4">' . $row['id'] . '</div>';
    echo '<div class="content"><a href="update.php?id='.$row['id'].'">'.$row['name'].'</a></div>';
    echo '<div class="nav3">' . $row['lastname'] . '</div>';
    echo '<div class="sidebar">' . $row['email'] . '</div>';
    }
    ?>
    حالا چه کاری باید انجام بدم؟

  17. #17
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: منو برای کار با checkbox ها راهنمایی کنین


    <?php
    while($row = mysql_fetch_array($result))
    {
    echo '<div><input name="checkbox[]" type="checkbox" id="checkbox[]" value="'.$rows[id].'"></idv>';
    echo '<div class="nav4">' . $row['id'] . '</div>';
    echo '<div class="content"><a href="update.php?id='.$row['id'].'">'.$row['name'].'</a></div>';
    echo '<div class="nav3">' . $row['lastname'] . '</div>';
    echo '<div class="sidebar">' . $row['email'] . '</div>';

    }
    ?>


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •