مشاهده نسخه کامل
: استفاده از چک باکس در آپدیت تیبل
tasnim68
31-10-2011, 20:58
سلام دوستان. راستش من تازه php رو شروع کردم.
واسه شروع هم تقریبا یه لینکستان مانندی درست کردم که 3 تا اطلاعات یه فرم (یعنی عنوان لینک، آدرس لینک و نام مدیر سایت) رو میگیره و تو یه تیبل به اسم list تو دیتابیسم ذخیره میکنه.
و آخر سر این اطلاعات رو به شکل یه جدول تو یکی از صفحات به نمایش در میاره.
من واسه اینکه کارم کمی حرفه ای تر جلوه کنه گفتم بذار واسه این لینک هایی که ثبت میشن امکان مدیریت و تایید هم بذارم. واسه همین یه ستون چهارم هم به اسم show به این جدول اضافه کردم که بطور پیشفرض مقدارش no هستش و باعث میشه تا من مقدارش رو yes نکردم لینک رو نمایش نمی ده.
حالا من تو قسمت مدیریت لینک ها موندم!
می خوام تو صفحه مدیریت جلوی هر لینک یه چک باکس بذارم و آخر سر وقتی روی یه دکمه مثلا به اسم تایید کلیک می کنم مقدار show همه اون لینک هایی که چک باکسشون تیک خورده به yes آپدیت بشه و در نتیجه اون لینک تایید شده به حساب بیاد و تو لیستی که قبلا عرض کردم نمایش داده بشه.
لطف می کنید اگه راهنمایی کنید که چطور می تونم از چک باکس برای این کار استفاده کنم.
فقط از یاد نبرید که من کمتر از یه هفتست که php و Mysql کار می کنم! پس کمی ابتدایی توضیح بدید. ممنونم.
moein_ak
31-10-2011, 23:35
خب توی صفحه هر چکباکس این طوری میشه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینو تو حلقه ای که بقیه ی فیلداتو ایجاد میکنه میذاری(جای $id باید آیدی هر لینکو بذاری)
خب حالا تو بخش کد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه جاییشو نفهمیدی بگو
در ضمن این فقط واسه تاییده
واسه این که بتونی یه لینکو از تایید درش بیاری گذاشتم خودت فکر کنی ببینی به نتیجه ای میرسی یا نه
--راهنمایی--
وقتی یه checkbox تیک نخورده باشه پست نمیشه یعنی اگه داشته باشی
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه موقع ارسال فرم تیک نخورده باشه این کد تو پی اچ پی بهت false میده
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
tasnim68
01-11-2011, 21:19
قبل از اینکه بخوام کد چک باکس رو بررسی کنم اجازه بدید برگردم به مشکلات اساسی تر!
شما الآن اینجا از متد Post استفاده کردید، در صورتی که من از متد Get استفاده می کنم و دلیل استفادم از get هم اینه که بلد نیستم خارج از فرم از متد post استفاده کنم!
الآن اون فرمی که واسه ثبت لینک ساختم اطلاعاتش رو با متد post به فایل insert.php می فرسته و اون فایل اطلاعات رو روی دیتابیس ثبت می کنه.
ولی من خارج از فرم بلد نیستم این کارو انجام بدم، پس برای تایید لینک ها یه صفحه به اسم tayid.php ساختم و برای تایید لینک ها هم از لینک tayid.php?id=$ID استفاده می کنم.
با این اوصاف من برای اینکه بتونم از چک باکس استفاده کنم اول باید انجام این کار با متد post رو یاد بگیرم. نه؟
moein_ak
02-11-2011, 03:41
قبل از اینکه بخوام کد چک باکس رو بررسی کنم اجازه بدید برگردم به مشکلات اساسی تر!
شما الآن اینجا از متد Post استفاده کردید، در صورتی که من از متد Get استفاده می کنم و دلیل استفادم از get هم اینه که بلد نیستم خارج از فرم از متد post استفاده کنم!
الآن اون فرمی که واسه ثبت لینک ساختم اطلاعاتش رو با متد post به فایل insert.php می فرسته و اون فایل اطلاعات رو روی دیتابیس ثبت می کنه.
ولی من خارج از فرم بلد نیستم این کارو انجام بدم، پس برای تایید لینک ها یه صفحه به اسم tayid.php ساختم و برای تایید لینک ها هم از لینک tayid.php?id=$ID استفاده می کنم.
با این اوصاف من برای اینکه بتونم از چک باکس استفاده کنم اول باید انجام این کار با متد post رو یاد بگیرم. نه؟
اگه میخوای GET استفاده کنی یا هر دفعه فقط یه لینک تایید شه اصلا چرا چکباکس استفاده میکنی؟
کافیه یه لینک ساده بذاریکه ببرتت به tayid.php?id=$ID
اگه خیلی اصرار داری این کارو انجام بدی و اونم خارج فرم(که نمیفهمم برای چی میگی نمیتونی تو فرم بذاریش) اون وقت باید از جاوا اسکریپت استفاده کنی
tasnim68
02-11-2011, 17:40
(قبل از ادامه بحث یه بار دیگه از لطفت تشکر می کنم؛ ممنونم که وقت میذاری)
مثل اینکه من منظورمو بد گفتم!
در حال حاضر من با استفاده از GET و یه لینک هر بار یه لینکو تایید می کنم، در صورتی که من می خوام با متد POST و چکباکس کاری کنم که چندتا لینک با هم تایید بشن.
ولی مشکل من اینجاست که من نمی دونم چطورر باید با post کار کنم.
نمی دونم شایدم بلدم و نمی دونم!
الان به جای کدی که لینک تایید (یعنی tayid.php?id=$ID) رو میسازه کدی رو میذارم که چکباکسی میسازه که nameش مساوی tayid[$ID] هستش.
خب حالا من نمی دونم چطور باید دکمه ای بسازم که (با متد post بجای get) با tayid.php ارتباط بر قرار کنه و لینک های تیک خورده رو تایید کنه.!؟
moein_ak
03-11-2011, 02:14
(قبل از ادامه بحث یه بار دیگه از لطفت تشکر می کنم؛ ممنونم که وقت میذاری)
مثل اینکه من منظورمو بد گفتم!
در حال حاضر من با استفاده از GET و یه لینک هر بار یه لینکو تایید می کنم، در صورتی که من می خوام با متد POST و چکباکس کاری کنم که چندتا لینک با هم تایید بشن.
ولی مشکل من اینجاست که من نمی دونم چطورر باید با post کار کنم.
نمی دونم شایدم بلدم و نمی دونم!
الان به جای کدی که لینک تایید (یعنی tayid.php?id=$ID) رو میسازه کدی رو میذارم که چکباکسی میسازه که nameش مساوی tayid[$ID] هستش.
خب حالا من نمی دونم چطور باید دکمه ای بسازم که (با متد post بجای get) با tayid.php ارتباط بر قرار کنه و لینک های تیک خورده رو تایید کنه.!؟
توی یه فرم استفاده از پست یا get مربوط میشه به متد تگ فرم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا اگه به جای method="get" بذاری method="post" فرمت محتویاتو پست میکنه
tasnim68
03-11-2011, 07:28
پس با این حساب کل قضیه (جدول لیست لینکا + چکباکسا + دکمه تایید) رو باید بذارم توی یه فرم با متد post و اکشن tayid.php؟
moein_ak
04-11-2011, 12:41
پس با این حساب کل قضیه (جدول لیست لینکا + چکباکسا + دکمه تایید) رو باید بذارم توی یه فرم با متد post و اکشن tayid.php؟
درسته:46::20:
tasnim68
04-11-2011, 22:37
خب حالا اگه بخوام یه دکمه دیگه بذارم که delete.php رو اجرا کنه چی؟ نمیشه که واسه یه فرم دوتا اکشن تعریف کرد. میشه؟
moein_ak
05-11-2011, 18:40
خب حالا اگه بخوام یه دکمه دیگه بذارم که delete.php رو اجرا کنه چی؟ نمیشه که واسه یه فرم دوتا اکشن تعریف کرد. میشه؟
خب دوست عزیز روشی که شما پیش گرفتی اشتباهه
بهترین کار اینه که کارایی که مربوط به این فرم میشه تو یه فایل باشه
بعد بستگی به دکمه ای که کلیک شده کاری رو که میخوای انجام میدی
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بعد توی پی اچ پی
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
neopersia
05-11-2011, 20:31
اینطوری کاری رو که میخواید میتونید انجام بدید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
moein_ak
06-11-2011, 02:29
اینطوری کاری رو که میخواید میتونید انجام بدید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
neopersia جان در نظر داشته باش توی دکمه ها همیشه استفاده از name بهتر از value ه چون هر آن ممکنه صاحب سایت تصمیم بگیره اسم دکمه رو عوض کنه یا در مورد I18N که اصلا نمیشه راجع به value حرف زد
neopersia
06-11-2011, 18:02
استفاده از name و چک نکردن مقدار از نظر منطقی درست نیست (بی معنی میشه). دکمه هم یکی از المنتهای فرم هست و مقدارش در فرم باید حساب شده باشه. هر کس که متن دکمه رو تغییر داد باید پردازش فرم رو هم در نظر داشته باشه
در مورد i18n هم که دیگه اصلاً مشکلی نیست چون در این مورد میشه به جای نوشتن مقدار دکمه تابع یا متغیر حاوی ترجمه رو در کد php استفاده کرد و بعداً هم در صورت تغییر اون کلمه دیگه نیازی به ویرایش هیچ چیزی نیست
در هر صورت روش درست این نوع فرم همین هست. اگر فکر میکنید به مشکل میخوره باید به جای استفاده از دو دکمه سابمیت از یک select یا radio برای مشخص کردن عملیاتی که باید انجام بشه استفاده بشه
tasnim68
07-11-2011, 22:31
اینطوری کاری رو که میخواید میتونید انجام بدید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فقط جسارتا تو کد اول متد باید POST می شد دیگه؟
neopersia
07-11-2011, 23:26
فقط جسارتا تو کد اول متد باید POST می شد دیگه؟
بله مشخصه باید پست باشه :دی
من از پستهای قبلی کپی کردم و فقط قسمتهایی رو که لازم داشتم ویرایش کردم دقت نکردم که پست بود یا گت
tasnim68
08-11-2011, 00:55
بله مشخصه باید پست باشه :دی
من از پستهای قبلی کپی کردم و فقط قسمتهایی رو که لازم داشتم ویرایش کردم دقت نکردم که پست بود یا گت
نیست من یه کم تازه کارم تو این قضیه؛ گفتم بذار مطمئن شم! دم شما گرم.
tasnim68
08-11-2011, 01:38
خب الآن کار نمی کنه!
کدی که من تو صفحه مدیریت لینک ها دارم این شکلیه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و کدی که تو action.php دارم هم این شکلیه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ولی کار نمی کنه.
tasnim68
08-11-2011, 01:45
اضافه کنم که اسم تیبل List هستش و چهار ستون داره:
URL که آدرس ها رو داره
Owner که اسامی صاحبان لینک ها رو داره
Title که عناوین لینک ها رو داره
و
Stat که فعلا فقط دو حالت act و wait رو به ترتیب برای لینک های فعال و در انتظار تایید داره
neopersia
08-11-2011, 02:19
روشی رو که من گفتم میتونید با این کد امتحان کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میبینید که با کلیک کردن روی دکمه های مختلف مقدار ارسال شده هم تغییر میکنه. پس باید دنبال جایی باشید که توی سورستون مشکل وجود داره و کاری رو که لازم دارید انجام نمیده.
یک مورد رو که من پیدا کردم اینه که شما دارید در هر foreach یک متغیر رو بدون اینکه کوئری ارسال بشه بازنویسی میکنید! در نتیجه هر دفعه فقط کوئری آخر اجرا میشه
مورد بعدی هم عبارت استفاده شده در foreach ها هست. متغیر id$ در همه foreach ها مقدار 1 داره! به جای اینکه url رو به عنوان کلید در آرایه tayid استفاده کنید باید آیدی رکورد مورد نظر در دیتابیس رو اونجا قرار بدید و url رو در value چک باکس قرار بدید (اگر فیلد برای آیدی ندارید اضافه کنید):
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مورد بعدی هم رعایت نکردن کوچک و بزرگی حروف در متغیرها و نام فیلدها هست. درسته که میگن mysql به بزرگ و کوچک بودن نامها حساس نیست ولی وقتی که قراره نام فیلدها به عنوان کلید در آرایه php استفاده بشه باید دقیقاً همونطوری باشه که نوشته میشه! ضمن اینکه در لینوکس بزرگ و کوچک بودن نام جدول و فیلدها مهم هست و باید رعایت بشه!
tasnim68
08-11-2011, 10:10
کاش کد کوئریشوهم می نوشتید!
tasnim68
08-11-2011, 10:25
اصلاحاتی که فرمودید رو انجام دادم و الآن کار می کنه! دم شما گرم! منتظر اشکالات بعدی بنده باشید!!! :31:
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.