۱۲ Amir Hossein Sattari
اضافه نشدن فولدر و تسک
جامعه پی اچ پی ایجاد شده در ۲۳ فروردین ۱۴۰۲

سلام و وقت بخیر

من تو آخر پروژه به یه مشکلی برخوردم ممنون میشم راهنمایی کنید.

مشکل اینه که بعد از تغییر تابع getCurrentUserId

function getCurrentUserId()
{
    return getLoggedInUser()->id ?? 0;
}

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

سلام امیرحسین عزیز

از خروجی تابع یک دامپ بگیر ببین خروجی چیه.

احمدرضا فاطمی کیا ۲۳ فروردین ۱۴۰۲، ۱۶:۱۰

آیدی کاربر و برمیگردونه

Amir Hossein Sattari ۲۳ فروردین ۱۴۰۲، ۱۶:۳۷

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

احمدرضا فاطمی کیا ۲۳ فروردین ۱۴۰۲، ۱۷:۴۶

بیشتر که بررسی کردم فهمیدم که:

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

در این حالت همه چی درست کار میکنه.

Amir Hossein Sattari ۲۵ فروردین ۱۴۰۲، ۱۲:۲۰

کدهاتون رو چک کنید ببینید کجا این باگ رو ایجاد کرده.

احمدرضا فاطمی کیا ۲۵ فروردین ۱۴۰۲، ۱۳:۱۸

تو کنسول این ارور caught SyntaxError: Invalid or unexpected token (at ?delete_folder=35:95:31) بود.

و تو source صفحه این ارور رو پیدا کردم.

Warning: Undefined variable $folder in C:\\xampp\\htdocs\\7Learn.php\\7 todo\\tpl\\tpl-index.php on line 115

و

Warning: Attempt to read property "id" on null in C:\\xampp\\htdocs\\7Learn.php\\7 todo\\tpl\\tpl-index.php on line 115

درحالی که من متغییر folder$ رو در tpl-index.php تو حلقه foreach تعریف کردم

Amir Hossein Sattari ۲۵ فروردین ۱۴۰۲، ۲۰:۱۹
$('<li> <a href="?folder_id= $folder->id ?>"><i class="fa fa-folder">i>' + input.val() + 'a>li>').appendTo('ul.folder-list');

این خط 115

Amir Hossein Sattari ۲۵ فروردین ۱۴۰۲، ۲۰:۲۳

البته خط بالا کاملا درسته موقع کپی کردن کامل کپی نشد (یه سری تگ‌های باز و بسته کپی نشده) و ویرایش نشد که درستش کنم.

Amir Hossein Sattari ۲۵ فروردین ۱۴۰۲، ۲۰:۴۱

سلام،

آخرین پست این تاپیک سورسی پیوست کردم، از این سورس کمک بگیرید.

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

محسن موحد ۲۶ فروردین ۱۴۰۲، ۰۰:۳۳

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

https://github.com/Amir-sattari/7todo.git

Amir Hossein Sattari ۲۶ فروردین ۱۴۰۲، ۱۹:۲۰
  1. صفحه ajaxHandler لاین 34 باید خروجی رو به سمت کلاینت echo کنید:
echo addFolder($_POST['folderName']);

2.در برگشت از ajax باید خروجی رو از response بگیرید و اینکه تگ php باز کردید و id رو میخواید از php بگیرید اشتباه است و نکته ی دیگر اینکه اصلا $folder->id معنی نداره این عبارت مال حلقه بالاتر بوده ارتباطی با این بخش نداره. بنابراین صفحه tpl-index لاین 115:

$('<li><a href="?folder_id='+ response +'" ><i class="fa fa-folder">i>' + input.val() + 'a>li>').appendTo('ul.folder-list');

سینتکس هایلایتر بهم میریزد این قسمت، شما به قست response توجه کنید که بعنوان مقدار folder_id گذاشته شده.

3.مورد بعدی برای اینکه آیدی فولدر درج شده در دیتابیس رو به response برگردونیم، صفحه ی lib-tasks لاین 23:

return $pdo->lastInsertId();

4.برای تسک هم بهمین ترتیب لاین 50 از صفحه ajaxHandler باید echo کنید خروجی را برای سمت کلاینت:

echo addTask($taskTitle, $folderId);


بهترین پاسخ
محسن موحد ۲۶ فروردین ۱۴۰۲، ۲۳:۲۲

تشکر از راهنمایی هاتون.

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

Amir Hossein Sattari ۲۷ فروردین ۱۴۰۲، ۰۸:۰۵