سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ پیمان
تمرین اخر جلسه - گرفتن id و نام فولدر با response ajax
kimia حل شده توسط kimia

با سلام

جواب تمرین اخر جلسه

برای گرفتن id و نام فولدر در response ajax و قرار دادن آن در لیست فولدر‌ها به صورتیکه با کلیک بر روی فولدر جدید ویا کلیک برای حذف آن همان روال عادی مربوط به لیست فولدر‌ها را داشته باشد.

ابتدا در تابع add folder بعد از insert شدن یک کوئری select ران می‌کنیم و اطلاعات فولدر جدید را در قالب یک آرایه می‌گیریم

130b-Untitled (1).png

**** سپس آرایه دریافتی از دیتابیس را در فایل ajax-handler با تابع json-encode تبدیل به یک json می‌کنیم و آن را response ajax قرار می‌دهیم .

be44-2.png

**** response دریافتی در ajax را که یک json می‌باشد با تابع JSON.parse به یک ابجکت جاوااسکریپت تبدیل کرده در این صورت ما به تمام اطلاعات مربوط به یک row در جدول فولدر دسترسی درایم .

هر مشخصه را درون یک متغیر می‌گذاریم و متغییر‌ها درون متن li قرار می‌دهیم.

با قرار دادن تگ a مربوط به خود فولدر و ایکون حذف آن و قرار دادن folder id در متن مربوط به ایجاد لیست ، یک فولدر ایجاد می‌شود که همه خصوصیات فولدار‌های قبلی را داراست.

dfd6-3.png


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

با آرزوی موفقیت

پیمان ۰۸ خرداد ۱۴۰۲، ۱۵:۱۶

سلام 

بنده از کد‌های شما استفاده کردم اما وقتی یه موردی اضافه میکنم به ارور زیر میخورم و اجکس اجرا نمیشه باید صفحه رو رفرش کنم تا اضافه بشه  که خیلی گشتم نتونستم دلیلشو پیدا کنم. این ارور رو از کنسول کروم برداشتم . و فکر کنم به json.pars مربوط میشه که استفاده کردید

Uncaught SyntaxError: Unexpected non-whitespace character after JSON at position 76 (line 1 column 77) at Function.parse [as parseJSON] () at Object.success (7todo/?delete_folder=46:111:35) at c (jquery.min.js:2:25304) at Object.fireWith [as resolveWith] (jquery.min.js:2:26053) at l (jquery.min.js:2:77782)
jamal esmaily ۰۸ آذر ۱۴۰۲، ۰۹:۳۲

سلام خدمت شما

خطایی که داده یه syntax error  هست ...

امکان داره اون متغیری که به تابع parseJSON  دادی به صورت ابجکت نباشه .

لطفا یه اسکرین از قسمت ajax  که نوشتی و و اون قسمتی که داخل فایل ajax_handler  هم اطلاعات فولدر رو گرفتی  ... اپلود کن .

من دوباره اون قسمت ajax  که نوشتم رو با کیفیت بهتر load  می کنم ... چک کن ببین به همین صورت نوشتی ...

 

 

پیمان ۱۴ آذر ۱۴۰۲، ۱۴:۳۸

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

اگر به جای select بعد از دستور insert  از تابع lastinsertid  استفاده کنیم مشکلی پیش می‌آید؟

بهترین پاسخ
kimia ۱۰ اردیبهشت ۱۴۰۳، ۰۷:۰۰

سلام ...

فکر نکنم مشکلی پیش بیاد برای گرفتن آخرین Id درج شده.... یعنی درصدش خیلی خیلی کمه که مشکل پیش بیاد...

من با این رویکرد select رو انتخاب کردم چون یوزر مورد نظر در اون درج شده و به نظرم احتمال اینکه id  فولدور دیگری از یوزر دیگری انتخاب بشه رو به صفر میرسونه ... 

منظورم اینه که اگه به صورت همزمان دو تا یوزر متفاوت باهم یه فولدر اضافه کنن (درصدش خیلی خلیی کمه ولی خوب محتمل هست) دیگه اشتباهی صوررت نمیگیره ...

پیمان ۰۹ فروردین ۱۴۰۴، ۰۴:۴۶