۱۴ محمدجوکار
گرفتن آيدی یا سایر اطلاعات در ایجکس
جامعه پی اچ پی ایجاد شده در ۲۹ آذر ۱۴۰۱

سلام و احترام

استاد در انتهای جلسه راجب این موضوع حرف زدن که اگر بخوایم فولدر رو در انتهای همه فولدرها بچسبونن، نیازه که از appendTo استفاده کنند و بعدش گفتن که میشه سایر اطلاعات رو هم گرفت و به پوشه‌ها داد

مثلا الان پوشه هایی که اینطوری ساخته میشن، آیدی نمیشه بهشون داد. میشه بگید چطور باید این کار رو کرد؟

f738-Screenshot (531).png

راستش اصلا من یه چیزیو متوجه نمیشم

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

ولی چرا خودش خودکار همه چیزو میگیره؟؟؟؟؟؟

0181-Screenshot (532).png

fbde-Screenshot (533).png

محمدجوکار ۲۹ آذر ۱۴۰۱، ۱۱:۰۲

سلام محمد عزیز

برای appendTo که از روی آیدی html افزودن انجام میشه و شما تا نخواید از روی دیتابیس حذفی انجام بدید نیاز به آیدی دیتابیس ندارید. جاشون # گذاشته شده.

برای گرفتن آیدی میتونید در همون درخواست ajax مقدار last insert id رو هم بگیرید وجایگزین # کنید. (برای زمانی که میخواید بعد از افزودن ajax از دلیت هم استفاده کنید وگرنه که با رفرش صفحه آیدی قبلی‌ها هم وجود داره)


احمدرضا فاطمی کیا ۲۹ آذر ۱۴۰۱، ۱۱:۰۳

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

مطابق تصویر دوم که ارسال شده.

از append فقط برای اون لحظه بدلیل اینکه کاربر مجبور به رفرش نشه استفاده میشه و در حقیقت درخواست به دیتابیس ارسال شده.

احمدرضا فاطمی کیا ۲۹ آذر ۱۴۰۱، ۱۳:۲۲

در رابطه با پیام دوم شما:

کارایی که داره، خب قابل دیده و میشه یجورایی فهمید که آره در نهایت چی برامون برمیگرده با این خط کد

ولی من نمیتونم درک کنم که از نظر منطقی، چطور این اتفاق می‌افته.. شما اینجا رو ببینید

b1b1-Screenshot (535).png

اگر منظور از «اپند»ی که در ایجکس نوشتیم، اینه که باید اون «li» ما بیاد و توی این حلقه بشینه، این باشه، خب الان من اینو نوشتمش اینجا؛

(صرفا برای دیدن چشمی عملیاتی که اتفاق می‌افته) .

خب الان چطوری میاد براش آیکون remove رو میزاره؟ چطوری آیدی بهش میده؟ اصلا نمیشششه که. تنها چیزی که منطقا میتونسته گرفته باشه، آیکن خود فولدره که اشتباهی من home گذاشتم. و اسمش، که با ایجکس گرفته. ما بقی چی؟ اصلا متغیری نیست که بخواد جایگذاری بشه


محمدجوکار ۲۹ آذر ۱۴۰۱، ۱۳:۵۷

ببین محمد جان

append ما وارد حلقه نمیشه و فقط یک li به ul ما اضافه میشه اون موقع که ما فولدر اد میکنیم لود صفحه تمام و حلقه اجرا شده و مجدد انجام نمیشه مگر اینکه رفرش بشه.

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

اطلاعات از دیتابیس گرفته میشه و توی حلقه قرار میگیره.

احمدرضا فاطمی کیا ۲۹ آذر ۱۴۰۱، ۱۴:۱۳

آهان چقد خوب و جالب. الان فهمیدم

اپند توی حلقه نمیره اصلا و صرفا یه فولدر میسازه. بعد از ساخت و اضافه شدن یک فولدر به دیتابیس، با رفرش مجدد، اطلاعات دیتابیس ما وارد حلقه میشه و اون موارد که شامل آيکون دیلیت و .. میشن، بهش اضافه میشه.

ولی با این تفاصیل الان من یه مشکل دارم

پس چرا به محضی که من دکمه اد رو میزنم، فولدره با تمامی امکاناتش میاد زیر فولدرها میشینه؟

صفحه رو هم رفرش نمیکنم که بخواد حلقه اجرا بشه

محمدجوکار ۲۹ آذر ۱۴۰۱، ۱۴:۲۴

امکان حذف نداره و صرفا یک li خام اضافه میشه که نام داره

میتونید آیدی رو هم دریافت کنید و امکان حذف توی اون لحظه یا مدیریت فولدر هم بدید به پروژه .

درخواست به سمت سرور ارسال و پاسخ سریع دریافت میشه و به همین دلیل li به سرعت به زیر سایر li‌ها ارسال میشه و این خاصیت خوب js هست که html استاتیک رو به ما قدرت dynamic کردنش رو میده.

احمدرضا فاطمی کیا ۲۹ آذر ۱۴۰۱، ۱۴:۲۸

مال من درجا همچی اضافه میشه بهش و همینو متوجه نمیشم

پروژه رو براتون پیوست میکنم، هروقت تونستید، ممنون میشم یه نگاهی بندازید..


محمدجوکار ۲۹ آذر ۱۴۰۱، ۱۴:۳۵

سلام محمد جان

اسکریپت jquery برات لود نشده و داری فرم رو به صفحه ارسال میکنی و ایجکس عملا غیرفعاله.

اسکریپت jquery رو دانلود و در پروژه قرار بده و ازش استفاده کن.

این مورد به دلیل مشکلات اینترنت حال حاضر و فیلترینگ کشور هست.


احمدرضا فاطمی کیا ۲۹ آذر ۱۴۰۱، ۱۴:۵۹

کدهاتون بررسی کردم و موارد زیر باید رفع بشه:

1.

لاین 44 صفحه ی tpi-index.php

وقتی روی دکمه + کلیک میشه فرم سابمیت میشه، کدرو به شکل زیر بنویسید تا صفحه سابمیت و postback نشه

قطعه کد زیر رو به اسکریپت هاتون اضافه کنید: (البته آیدی formid رو به تگ form بدید)

$("#formid").submit(function(e){
    e.preventDefault();
});

2. صفحه ی db.php لاین 36 کامنت کردید که باید از کامنت دربیارید تا خروجی 1 به صفحه ی html برگرده


یه موردم برای لود فایل‌های اسکریپت و استایل

لاین 82 صفحه ی tpi-index.php درست آدرس دهی نشده واسه لوکیشن script

چون این صفحه داخل index.php اینکلود شده بنابراین نسبت به روت باید آدرس دهی میشده نه اینکه اینجا نسبت به فولدر tpi آدرس دهی بشه.

احمدرضا فاطمی کیا ۲۹ آذر ۱۴۰۱، ۲۰:۱۴

ممنونم از وقتی که گذاشتید

بررسی میکنم تک‌تکشونو

محمدجوکار ۳۰ آذر ۱۴۰۱، ۱۵:۲۳

موفق باشید

درصورت حل مشکل تیک سبزو بزنید تا تاپیک از پیگیری خارج بشه.

احمدرضا فاطمی کیا ۳۰ آذر ۱۴۰۱، ۱۶:۰۰

در مورد نکته اول

این الان کدهای ایجکس منه، کجاش باید بزارم کدهای شمارو؟

    $(document).ready(function() {
      var input = $('#addFolderInput');
      var btn = $('#addFolderBtn');
      btn.click(function(e) {
        $.ajax({
          url'process/ajaxhandler.php',
          method'post',
          data: {
            action'addFolder',
            folderName: input.val()
          },
          successfunction(response) {
            if (response == 1) {
              $('
  •  ' + input.val() + '
  •  '
    ).appendTo('ul#folderList')             } else {               alert(response);             }           }         })       })     })   
    محمدجوکار ۰۱ دی ۱۴۰۱، ۱۰:۵۸

    بعد از خط اول

    به فرم حتما id بدید

    $(document).ready(function() {
    $("#formid").submit(function(e){
        e.preventDefault();
    });
    //More .....
    


    بهترین پاسخ
    احمدرضا فاطمی کیا ۰۱ دی ۱۴۰۱، ۱۱:۰۳