سوال مفهومی از ajax در این کد - نسخه قابل چاپ +- Parsi Coders (http://parsicoders.com) +-- انجمن: Web Development and Design (http://parsicoders.com/forumdisplay.php?fid=47) +--- انجمن: AJAX (http://parsicoders.com/forumdisplay.php?fid=51) +--- موضوع: سوال مفهومی از ajax در این کد (/showthread.php?tid=3070) |
سوال مفهومی از ajax در این کد - one hacker alone - 02-22-2013 با سلام قطعه کد زیر موتور اژاکس رو نووشته و یه تابع برای حذف رکورد ها در واقع این کد به بانک وصل میشه و داده ها رو تو جدول لیست میکنه حالا کاربر اگه روی دکمه حذف کلیک کنه اون رکورد با اژاکس میره تو بانک حذف میشه و با جاوا اسکریپت از صفحه فعلی برداشته میشه اما سوال اینه که ما وقتی id سطری که کاربر روش دکمه حذف رو زده به تابع sendfordelمیفرستیم چی باعث میشه که ای دی ها با هم تفاوت داشته باشه یعنی در واقع چجوری منحصر بفرد شده در حالی که این موضوع در این جدول ربطی به ایدی بانک نداره و در واقع ما اینجا یک متغییر $id داریم و باید یک داده توش ذخیره شده باشه !!! اما چجوری میفهمه که این id ماله کدوم سطر هست مگه اینکه با هربار دکمه حذف یه بار حلقه while اجرا بشه تا به اون id برسه و بعد بفرسته برا تابع sendfordel کد پیاچپی: [color=#800000]<script type=[color=#0000FF]"text/javascript"[/color] language=[color=#0000FF]"javascript"[/color]>[/color] ببینید ما فرض میکنیم خروجی ما به شکل زیر هست12345 کد: id name operate کد: _______________________ کد: 1 ali del کد: 2 reza del کد: 3 ahmad del ببینید این درسته هم ایدی های واکشی شده از بانک جدا هستن هم اینکه هر tr یه ایدی جدا گرفته اما وقتی که ما id رو پاس میدیمم به تابع در واقع داریم id ی پاس میدیم که یک متغییر هست و هیچ ربطی نه به ایدی tr داره نه به ای دی بانک و با توجه به تریس کردن حلقه اخرین مقداری که در متغییر $id ذخیره میشه عدد 3 هست اینو قبول دارین دیگه؟ چون به اندازه 3 رکورد در بانک بوده و مقدار اخرین ایدی بانک هم 3 بوده پس داریم $id=3 حالا از اون طرف ما اومدیم همین $id رو به تابع ارسال کردیم در حالی که امکان داره ما روی دومی حذف رو زده باشیم یا اولی اما کد به درستی کار میکنه و من با درست بودن کد مشکل دارم میخوام بدونم قضیه چیه اگه بخوام یه جور دیگه بگم اینجوری میشه ببینید تو این خط ما اومدیم ایدی جدول رو میریزیم تو متغییر $id1 کد: <?php $id=$row["id"]; ?> در خط بعد هم اومدیم همین $id رو به tr دادیم تا این ایدی منحصر به فرد برای هر سطر هم منحصر به فرد باشه و این رو قبول دارم اما حرف من اینه که این id$در اولین دور اجرای حلقه مقدار 1 و دور دوم مقدار 2 و دور سوم مقدار 3 میگیره و تمام اطلاعات از بانک واکشی میشه و برای کاربر نمایش داده میشه حالا در حالی که مقدار $id=3 هست بر اساس اخرین دور اجرای حلقه ؛ کاربر میاد روی یکی از سطرها حذف رو میزنه و ما اومدیم متغییر $id رو فرستادیم به تابع!!!!! خوب مگه این مقدار ایدی 3 نیست پس این برنامه از کجا میفهمه که اون سطری که ما کلیک کردیم ایدیش 2 یا 3 هست؟؟؟؟؟؟؟؟؟؟؟؟؟؟ |