اذهب إلى المحتوى

Kais Hasan

الأعضاء
  • المساهمات

    2609
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    26

كل منشورات العضو Kais Hasan

  1. للتحقق فيما إذا كان غوغل قد أضاف الموقع الخاص بك يمكنك كتابة ما يلي في البحث الخاص بغوغل: site:اسم الموقع الخاص بك في حال كان هناك نتائج من الموقع الخاص بك فهذا يعني أنه قد أضافه، و إلا عليك الانتظار قليلاً كما تحدث المدربون في التعليقات السابقة، في اللحظة التي يعيد فيها البحث السابق نتيجة فهنا تبدأ مرحلة أخرى و هي محاولة تحسين ظهور موقعك حيث أنه حتى لو تم إضافته فهذا لا يعني أنه سيظهر عندما يبحث مستخدم ما عن أمور يقدمها موقعك، فهناك الكثير من المواقع الأخرى غالباً التي تقدم محتوى مشابه. المنافسة كبيرة، و جودة المحتوى و تميزه هو أحد أهم العوامل و لكنه ليس العامل الوحيد. بعض هذه العوامل هي: إضافة المكون title و إعطاءه قيمة فريدة من نوعها، يجب أن يكون هذا العنوان دقيقاً، حاول تجنب العناوين العامة جداً فهناك الكثير من المواقع التي تستعملها، أي حاول خلق عنوان مميز. الروابط الخاصة بموقعك يجب أن تكون عبارة عن أسماء ذات معنى تصف ما الذي يقود إليه الرابط، و لكن لا يجب أن تكون طويلة جداً. عند استعمال الروابط الخارجية باستعمال المكون a، تجنب وضع أسماء مثل click here أو page أو أي اسم عام، فهذا لا يعطي المستخدم فكرة عما سيحدث عند ضغطه على الرابط، الكثير من المواقع تستعمل ذلك للإعلانات مثلاً أو حتى يمكن أن يكون لنشر الفيروسات، لذلك حاول ألا تستعمل هذه الأسماء حتى يثق المستخدم بالموقع. قم باستعمال ما يساعد تقنيات المساعدة التي تقراً محتوى الصفحة للشخص (سواء بسبب أن الشخص لديه مرض يمنعه من القراءة أو كان منشغلاً بأمر ما و لا يستطيع النظر إلى الموقع و لكنه يريد الاستماع)، مثلاً في الصور قم بوضع الخاصية alt التي تشرح ما هو محتوى الصورة. على الموقع الخاص بك أن يدعم الأجهزة المختلفة، من الأفضل أن يكون responsive. هناك المزيد من النصائح، يمكنك الإطلاع على ما تنصحك به غوغل من هنا.
  2. في حال كنت لا تريد توسيع عملك ل Full stack أعتقد أن أفضل شيء تقوم به هو أن تجد شخص يعمل ك front end و تقومان بعمل مشروع مشترك، لا شيء يزيد من خبرتك و معارفك أكثر من ذلك، كما ستتعلم كيفية التعامل في فريق، و ربما تتعلم مكاتب جديدة عند وجود الحاجة. لا فكرة من تعلم كل شيء ثم التطبيق، هناك الكثير من الأشياء إلى حد أنه يمكن أن تكون لك خبرة سنين في المجال و لا تعلم كل شيء، دائماً ركز على الأساسيات و الباقي يمكنك تعلمه عند الحاجة. في حال كنت تريد التوسع لتصبح full stack يمكنك تعلم إطار عمل مثل Angular ، أو أي إطار عمل آخر ترغب به. لكن نصيحتي الأساسية ابدأ التطبيق و العمل في حال كنت فعلاً متمكن مما ذكرته.
  3. من المستحيل حفظ كل ما تريده، فإذا نظرت إلى أي توثيق لأي لغة أو مكتبة كبيرة ستجده بآلاف الصفحات، هل يمكنك حفظ كل ذلك؟ بالطبع الجواب لا، كما أن البرمجة لا تقتصر على مجرد أفكار ثابتة، فقد تواجهك الكثير من المشاكل التي لن تجد مثلها بشكل مباشر على الانترنيت، أي تكون خاصة بالعميل الذي تقوم ببناء المشروع له، بالطبع ستجد ما يماثلها، و لكن في حال لم يكن لديك فهم فلن تستطيع معرفة أن أمر ما يشبه أمر آخر. دائماً ركز أن يكون تفكيرك ديناميكي بأكبر قدر ممكن، لا تقوم بتنفيذ أي شيء بدون أن تفكر قبله "لماذا أقوم بذلك"، لا مشكلة إذا كان التقدم بطيء، فالتقدم السريع بدون فائدة يوهمك أولاً أنك تقوم بشيء جيد و لكن لاحقاً ستنسى المعلومات بنفس السرعة التي حفظتها فيها. أما بالنسبة للأفكار و المهارات فهي لا تنسى، لذلك أنصح بالتركيز عليها جيداً.
  4. في السطر 49 من الملف queryBuilder.php أنت تقوم بتنفيذ التعليمة execute بدون تمرير القيم، و بالتالي هو لن يقوم بتبديل إشارات الاستفهام في تعليمة ال sql. عليك القيام بتمرير القيم التي ستعوض إشارات الاستفهام، مثال على ذلك: $sql = "UPDATE users SET name=?, surname=?, job=? WHERE id=?"; $stmt= $pdo->prepare($sql); $stmt->execute([$name, $surname, $job, $id]); حيث أن المتغيرات التي نمررها إلى execute يجب أن تكون معرفة مسبقاً بالطبع، في حالتك أعتقد أنها ضمن المصفوفة values.
  5. مرحباً. ما الخطأ الذي يحصل معك؟ حيث أن سؤالك غير واضح. من فضلك قم بتوضيح المشاكل و ما الذي ترغب بالقيام به حتى يمكننا مساعدتك.
  6. أنصحك أن تبدأ بتعلم أساسيات البرمجة لإحدى اللغات في البداية، شخصياً أنصح بالبدء بلغة ال c++ ﻷنها أكثر لغة معتمدة في العالم من الناحية التعليمية. تعلم الأساسيات فقط، من مفاهيم مثل المتغيرات و العبارات الشرطية و الحلقات التكرارية و المصفوفات و التوابع. ثم حاول أن تستعمل هذه الأمور بشكل معقد قليلاً، لتطور مهارة حل المشاكل لديك، هناك العديد من المواقع التي توفر مسائل برمجية لا تحتاج لأكثر من هذه المفاهيم بالإضافة لمهاراتك في حل المشاكل و التفكير المنطقي، بعض هذه المواقع هي: codeforces. hacker rank. atcoder. قد يبدو لك هذا الأمر بلا فائدة حيث أنك لا تقوم بتطوير تطبيق، و لكن تطوير تطبيق يحتاج لأكثر من مجرد معرفة التعليمات اللازمة لذلك، حيث عليك أن تملك المهارات التي سبق و ذكرتها. لذلك استثمار شهرين إلى 4 أشهر من وقتك في هذه الأمور هو أمر لن تندم عليه.
  7. من ناحية البرمجة بالطبع يمكنك ذلك، بشكل عام أي لابتوب يمكنه تشغيل البرامح البسيطة و المتوسطة. لكن هناك نقطة أريد إضافتها، و هي متعلقة بنظام التشغيل الخاص باللابتوب، هذا قد يبدو لك أمر غير مهم و لكنه مهم جداً. في حال كنت تريد تطوير مواقع ويب فلا مشكلة في ذلك، و لكن تبدأ المشاكل في حال كنت تريد تطوير تطبيقات لل desktop، حيث أنه لا يمكنك بناء تطبيقات للويندوز مثلاً على لابتوب mac، حيث هناك مكاتب معينة خاصة بنظام التشغيل يجب توافرها حتى يمكنك بناء التطبيق. هذا أمر مهم في حال كنت تريد الاختصاص في هذا المجال، أي دائماً عليك التفكير بما الذي تريد القيام به و هو ما يحدد هل اللابتوب جيد أم لا.
  8. بالإضافة إلى ما سبق و ذكره المدربوه هناك طريقة في ال c++ الحديثة تعتمد على توابع مثل accumulate و على استعمال ال containers مثل ال vector (و الذي يمكن تخزين عناصر بشكل ديناميكي ضمنه) كما أنها طريقة سهلة الفهم، و هي كما يلي: #include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<int> v; int n; cin >> n; for (int i = 0 ; i < n ; ++i) { int x; cin >> x; if (x < 20 && (x & 1) == 0) { v.push_back(x); } } int sum = accumulate(v.begin(), v.end(), 0); cout << sum << endl; return 0; } طبعاً هنا في البداية نطلب من المستخدم إدخال عدد الأرقام التي يرغب بإدخالها، ثم نقوم في كل مرة بإدخال الرقم و اختبار فيما إذا كان يحقق الشروط التي نريدها نقوم بإضافته إلى ال vector. هنا يمكن اختبار شرط فيما إذا كان عدد زوجي عن طريق العمليات على البتات، x & 1 تعيد 1 في حال كان العدد فردي و 0 في حال كان زوجي، و هي عملية أسرع من عملية باقي القسمة. و في النهاية نقوم باستدعاء التابع accumulate و هو يأخذ بداية و نهاية ال container التي هنا هي vector و القيمة الأولية و هنا نريدها 0.
  9. الانقطاع عن البرمجة بشكل عام سيؤدي إلى نسيان بعض المعلومات، هذا طبيعي جداً و يحدث مع أي شخص. بالطبع الشخص المبتدئ سينسى بفترة انقطاع أقل من شخص محترف. ما لا ينسى هو المبادئ و المفاهيم الخاصة بالبرمجة، و المهارات التي ستكتسبها من حل المشاكل و التفكير المنطقي. أنصحك بإعادة مشاهدة الدروس، أيضاً قم بمشاهدة الدرس مرة بتركيز عالٍ و حاول تطبيق ما قام به المدرب لوحدك، حاول قدر الإمكان عدم الرجوع إلى الدرس أثناء ذلك حتى لا تقوم فقط بعملية نسخ لصق لما قام به المدرب. هذا يجعلك تركز على المفاهيم و ليس على الأمور السطحية كاسم كل تعليمة، في حال نسيت تعليمة ما لا مشكلة يمكنك البحث عنها على غوغل و لكن حاول ألا تعود للدرس مباشرة، حيث أن البحث هو مهارة مهمة جداً لأي مبرمج. قد يكون من المفيد تسجيل بعض الملاحظات البسيطة، لكن لا تسجل الكود أو كل تفصيل صغير، هذه التفاصيل ستنساها، ما سيرسخها في ذهنك هو عندما تكتب الكثير من الأكواد التي تعتمد على ما تعلمته، أما حفظ التعليمات فهو أمر غير جيد.
  10. أعتقد أن المقصود هو أنك تريد بناء نموذج ذكاء صنعي يعتمد على هذه ال feature لتوقع ال label و حساب دقة هذا المودل. بما أن المهمة بهذه البساطة يمكنك استعمال linear regression. في البداية عليك قراءة البيانات من ملف ال excel، يمكنك استعمال مكتبة pandas. ثم يمكنك تقسيم هذه البيانات إلى قسمين، قسم للتدريب و قسم للاختبار، يمكنك استعمال مكتبة scikit-learn حيث أنها تحوي على تابع يدعى train_test_split، مثال على استعماله: X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.25 ) حيث هنا X هو العمود الخاص بال feature و y هو الليبل. بعد ذلك يمكنك استعمال هذه البيانات لتدريب مودل Linear regresssion كما يلي: from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(X_train, y_train) و يمكنك حساب الدقة كما يلي: print(model.score(X_test, y_test))
  11. كما ذكر المدربون في التعليقات السابقة دورة علوم الحاسب أفضل دورة للبداية. لكن أريد أن أوضح لك شيئاً ضرورياً حتى تنجح في هذه الدورة، و هو أنه عليك إدراك أن البرمجة ليست فقط كتابة كود، فهي ترتكز على مهارات مثل التفكير المنطقي و حل المشاكل، بالإضافة إلى الأساسيات المتعلقة بكيفية عمل الحاسب. حيث أنه في كثير من الأحيان ستواجه مشكلة برمجية لن تستطيع حلها ما لم يكن لديك معلومات نظرية عن كيفية عمل الحاسب، حتى أنك قد لا تكتشف وجود المشكلة و هذا أخطر. عليك أن تركز على هذه المهارات و لا تستعجل الوصول إلى مرحلة بناء تطبيق متكامل، ستصل إلى هذه المرحلة بإذن الله و لكن في حال لم تكن لديك المهارات السابقة فلن تستطيع بناء تطبيقات معقدة، و ستضطر لاحقاً إلى العودة و التركيز على هذه المهارات و هذا سيضيع الكثير من وقتك، لذلك ركز عليها منذ البداية.
  12. أنصحك بتعلم استعمال ال docker، فهو يسهل هذه الأمور كثيراً حيث أنه هناك الكثير من الاستضافات المجانية الخاصة به، و ميزاته أنه سيعمل على السيرفر تماماً كما عمل على جهازك. و عندها لن يوجد فرق بين تقنية و أخرى، أي يمكنك استعمال أي تقنية ترغب بها، سواء json server أو أي شيء آخر. مثلاً ستجد موقع مثل oracle يقدم لك خدمة استضافة مجانية لما ندعوه بال containers و هي مثل حافظة تغلف المشروع و فيها البيئة اللازمة لتشغيله و كل شيء، بالتالي تصبح عملية رفع الكود مجرد عملية رفع لملف واحد فقط! يمكنك الوصول إلى هذه الخدمة المجانية من هنا.
  13. قبل البدء بتعلم الذكاء الصنعي من المفيد أن تقوم بتعلم المفاهيم البسيطة للاحتمالات، هناك قناة اسمها 3Blue1Brown فيها شروحات بسيطة للاحتمالات من المفيد الاطلاع عليها، في رأيي كبداية يكفي أن تعرف مفاهيم بسيطة مثل المتغير العشوائي و التوزع الاحتمالي و القوانين البسيطة للاحتمالات، و تذكر المهم المفاهيم و ليس حفظ القوانين فدائماً يمكنك البحث عن القانون على النت. لا تتعمق كثيراً في الرياضيات حالياً، فقط ما سبق و ذكرته، بعدها يمكنك الانتقال إلى تعلم أساسيات بسيطة في ال AI، هناك كورس لباحث في هذا المجال اسمه Andrew Ng، يمكنك البحث عنه، هذا الكورس يعطيك الأساسيات البسيطة لتبدأ. بعد ذلك يجب عليك محاولة تنفيذ بعض المشاريع، من الجيد في البداية تنفيذ أمر بسيط لوحدك، مثلاً شبكة عصبونية بسيطة بحيث تقوم ببرمجتها لوحدك باستعمال مكاتب مثل numpy بدلاً من الاعتماد على أطر عمل، هذا يضمن أنك فهمت كيفية عمل الشبكة و كيفية حساب المشتقات و ما إلى هنالك. بعدها يمكنك الانتقال لتعلم إطار عمل مثل PyTorch و استعماله لبناء مشروع بسيط، أنصحك أن تبدأ بمشروع تصنيف classification فهو من أبسط أنواع المشاريع. في حال أنهيت ما سبق تكون قد خطيت خطوة جيدة لفهم الأساسيات بشكل مبسط، عليك بعدها تعميق فهمك لهذه الأمور، فالذكاء الصنعي ليس عبارة عن مجرد كود يمكننا كتابته، علينا فهم كل تفصيلة فيه حتى إذا واجهتنا مشكلة نعرف سببها و حتى يمكننا معرفة ما الذي علينا القيام به لحل مشكلة ما، يمكنك متابعة بعض كورسات جامعات مثل stanford فهي تقدم شرحاً معمقاً لهذه المفاهيم، و لكن لن تكون هذه الكورسات سهلة، و هذا أمر بديهي حيث أن الذكاء الصنعي ليس بالأمر السهل. و في النهاية يمكنك الانتقال إلى قراءة الأوراق البحثية، فهذا المجال يتطور بشكل سريع، و من الصعب أن تجد محتوى كورس ما يعطيك آخر التطورات، لذلك قراءة الأوراق البحثية هو أمر ضروري جداً حتى تبقى على إطلاع على كل ما هو جديد.
  14. إن هذا يعتمد على الطفل، هنالك أطفال يمكنهم فهم البرمجة في عمر 7 سنين و هنالك شباب بعمر ال 20 لا يمكنهم ذلك. هل هذا يعني أنه قد يمكن لشخص ألا يفهم البرمجة؟ كلا، و لكنني ذكرت ما سبق حتى أذكر لك أن تعلم البرمجة يعتمد على القدرة على المحاكمة المنطقية و التفكير المنطقي، و بالتالي هذا ما يجب علينا التركيز عليه في تعليم الطفل قبل التركيز على البرمجة بشكل أساسي. يمكن تحقيق ذلك عن طريق الخوارزميات البسيطة و المخططات التدفقية قبل الدخول إلى الشفرات البرمجية، كما أن هنالك لغة اسمها سكراتش تحقق ذلك، فهي عبارة عن تركيب بعض العبارات البرمجية البسيطة، و فيها تفاعلية و شخصيات كرتونية قد تحبب الطفل بهذه الأمور. دورة علوم الحاسوب كما ذكر مصطفى هي أنسب دورة لذلك، و في حال وجد الطفل صعوبة دائماً يمكنه السؤال في التعليقات مع توضيح عمره و يمكننا شرح المفاهيم له بطريقة أخرى مناسبة لعمره.
  15. يمكنك بالإضافة إلى ما ذكره زميلي استعمال مكتبات تضيف تنسيقاً أفضل من أي تنسيق يدوي. مثلاً المكتبة tabulate تسهل عليك القيام بذلك، كمثال على ذلك: from tabulate import tabulate table = [['col 1', 'col 2', 'col 3', 'col 4'], [1, 2222, 30, 500], [4, 55, 6777, 1]] print(tabulate(table, headers='firstrow', tablefmt='fancy_grid')) و يكون الخرج كما يلي: يفضل دائماً استعمال طرق كهذه، حيث أنه في الطريقة اليدوية يجب علينا أن نعرف ما أقصى عدد من المحارف لقيمة في عمود ما، و هذا ليس دائماً ممكن.
  16. يبدو أنك تحاول طباعة مجموع الأعداد في كل خطوة، عند ذلك يجب عليك طباعة المتغير empty و ليس المتغير result. حيث أنك تقوم بتخزين المجموع الحالي في كل خطوة ضمن ذلك المتغير.
  17. هناك تطبيق جديد على الموبايل يدعى Dcoder يمكنك من البرمجة بالكثير من التقنيات و أطر العمل. يمكنك الإطلاع عليه من هنا. بالطبع لن يكون مثل البرمجة على الحاسوب، و لكن يمكنك استعماله في البداية لمشاريع صغيرة.
  18. بالإضافة إلى ما ذكره مصطفى، يجب عليك أن تعلم أن الذكاء الصنعي ليس عبارة عن كتابة كود فقط، فهو علم معقد يعتمد على الرياضيات و خاصة الاحتمالات و الإحصاء و الجبر الخطي. لا يمكنك أن تعمل على مشروع حقيقي في الذكاء الصنعي ما لم تكن على معرفة جيدة بهذه الأمور حتى يمكنك فهم آلية عمل الخوارزميات في الذكاء الصنعي، و حتى تستطيع حل المشكلات المعقدة التي تواجهك أثناء ذلك. قد يمكنك العمل على مشاريع بسيطة أو استعمال آنظمة ذكاء جاهزة و لكن ما قمت بالتحدث عنه هو ضروري عندما تريد تطوير ذلك بنفسك. كما أن العمل في مجال الذكاء الصنعي أصعب، حيث أن المتطلبات أكبر و من النادر أن يجد أحد عمل في شركة و هو طالب، حتى أن الكثير من الشركات تتطلب أن يكون لديك شهادة ماستر أيضاً و ليس فقط بكالوريس.
  19. هناك تابع يدعى json_decode يمكنك استعماله لتحويل محتويات الحقل (التي تكون غالبا مخزنة على شكل نص) إلى غرض. بعد ذلك يمكنك استعمال هذا الغرض بالوصول إلى قيمه لمعرفة ما الذي يجب عرضه. يتبقى كيفية تحديد اللغة الحالية، يمكن معرفة اللغة الحالية عن طريق: Lang::locale(); حاول تطبيق ما سبق و في حال حصول أخطاء يمكنك سؤالنا عنها مع إرفاق الملفات طبعاً حتى يمكننا التحقق منها.
  20. إن البرمجة ليست متوقفة على تعلم لغة برمجة، فلكي تصبح مبرمج جيد يجب أن يكون لديك أساس في علوم الحاسوب بمختلف أقسامه. كما أن الخوارزميات و بنى المعطيات مهمة جداً و قواعد البيانات و غيرها الكثير من الأمور التي يمكن فهمها بشكل أفضل في مؤسسة أكاديمية مثل الجامعة. بالطبع عليك اختيار الجامعة الصحيحة التي لديها برامج تناسب أهدافك، يمكنك دائماً الاطلاع على ذلك على موقع الجامعة فأغلب الجامعات الجيدة توفر ذلك. أنصحك أيضاً بالتركيز حالياً على البكلوريا، هذه فرصة واحدة لا تعاد، على عكس البرمجة التي يمكنك تعلمها متى شئت.
  21. الذكاء الاصطناعي لن يقضي على مطوري الويب، و لكن من سيهمل أهمية الأدوات التي يوفرها الذكاء الاصطناعي لمساعدة المطور على إنجاز أعماله بسرعة أكبر و بحرفية أعلى سيبقى بلا عمل! إن الذكاء الاصطناعي حاليا لا يملك القدرة على التفكير و حل المشكلات، و من المتوقع أن يبقى هذا الأمر لعقود، و لكن أدوات الذكاء الاصطناعي الحالية تقدم مساعدة لك في كثير من الحالات. مثلاً أنا شخصياً قمت بتصميم لوغو بسيط باستعمال الذكاء الاصطناعي، هذا سرع من عملي كثيراً بدل أن أقوم بتصميمه بنفسي، و لكن لو لم يكن لدي بعض الخبرة في هذا المجال لما استطعت توجيه الأداة التي استعملتها لتعطيني الشكل الذي أريده. أما من ناحية كيف يمكنك تطوير نفسك في ال front end فيمكنك الإطلاع على مقالات حسوب فهي تحوي الكثير من الشروحات حول هذا المجال، كما أنه يوجد دورة كاملة تجعلك جاهزاً لسوق العمل و تعطيك المهارات اللازمة لذلك.
  22. إن التحقق من جهة المستخدم جيد من ناحية إعطاء المستخدم فكرة أفضل عن الأخطاء و بطريقة تفاعلية أكثر بكثير، مثلاً في حال نسي أن يقوم بإدخال حقل ضروري أو في حال استعمل أحرف غير مدعومة في اسم المستخدم (كالفراغات مثلاً). و بالتالي معالجة هكذا أخطاء تقلل العبء على السيرفر و تسهل تفاعل المستخدم مع الموقع. و لكن هذه العمليات لا تقوم بكل شيء، كما أنه يوجد الكثير من الطرق لتخطيها، و بالتالي التحقق من ناحية السيرفر هو أمر ضروري جداً، خاصة لأسباب الحماية، فقد تكون هناك بعض العمليات التي ترسل ملفات ضارة كالفيروسات إلى السيرفر، فيجب التحقق من كل ذلك و إلا يكون التطبيق غير آمن.
  23. من الجيد أنك قمت بحل المشكلة. إن أي خطأ يحتوي على الكلمات parse أو unexpected token يكون بشكل عام خطأ في الكتابة أي ما يدعى في البرمجة بال syntax error، و ذلك ﻷن المترجم لديه مجموعة من الكلمات التي يستطيع التعرف عليها، و في حال كتابتك لكلمة أو حتى محرف لا يعرفه سيظهر لك هذا الخطأ. هذه الأخطاء يمكن تلافيها عن طريق استعمال الإضافات التي تتحقق من الكود عند كتابته، أي مثلاً في ال vscode هناك إضافات خاصة بال php و laravel و django و أي لغة أو إطار عمل، هذه الإضافات تتحقق دائماً و تظهر لك خط تحت أي شيء غريب في الكود الخاص بك، أنصحك باستعمال هذه الأدوات فهي تسهل اكتشاف الأخطاء بشكل كبير.
  24. لم توضح أي دورة تقصد بسؤالك، و لكن يبدو أنك تتكلم عن دورة تطوير واجهات المستخدم. ليس هنالك متطلبات لهذه الدورة، فكما هو مكتوب في صفحة المعلومات الخاصة بالدورة: أي حتى المعرفة السابقة بالبرمجة بشكل عام ليست ضرورية. و دائماً سيكون معك فريق المدربين ليدعمك خلال هذه الدورة في حال حصول أي مشاكل أو في حال كان لديك أي سؤال عن محتوى الدورة.
  25. يمكنك إضافة السطر عن طريق الاستماع إلى حدث الضغط على زر الإضافة و عندك ذلك تنفيذ كود الإضافة، كود الإضافة يكون مجرد إضافة القالب المكتوب بال html إلى عنصر اللائحة. سأعطيك مثال بسيط يمكنك تعلم الفكرة منه و محاولة تطبيقها في التطبيق الخاص بك. سأوضح فكرة كيفية إضافة عنصر عن طريق برنامج todo list بسيط جداً، يمكننا كتابة ال html كما يلي: <!DOCTYPE html> <html> <head></head> <body> <input type="text" id="add-text" /> <button type="input" id="add-btn">Add</button> <br /> <ul id="todo-list"></ul> <script src="./add_li.js"></script> </body> </html> هنا لدينا مربع نصي للإدخال و زر لإضافة ما تم كتابته في المربع النصي و عنصر ul ليحمل عناصر اللائحة. و يكون كود الجافا سكربت كما يلي: const addBtn = document.getElementById("add-btn"); const addText = document.getElementById("add-text"); const todoList = document.getElementById("todo-list"); document.addEventListener("DOMContentLoaded", function (e) { addBtn.addEventListener("click", function (e) { let text = addText.value; if (text) { let newTask = document.createElement('li'); newTask.textContent = text; todoList.appendChild(newTask); } }); }); هنا نقوم في البداية بجلب المكونات التي نتعامل معها، ثم نستمع إلى حدث تحميل مكونات الصفحة. بعد ذلك نستمع إلى حدث الضغط على زر الإضافة، و في تلك الحالة نجلب النص من المربع النصي. في حال كان النص غير فارغ نقوم بإنشاء مكون li جديد و نضع النص الخاص به هو النص المدخل في المربع النصي، ثم نضيفه إلى اللائحة. هذا الشكل العام لهكذا عمل، طبعاً هنا الكود بسيط و أي إعادة تحميل للصفحة سيتم محو كافة التعديلات، حيث يجب أن يكون هناك كود إضافة يرسل التعديلات إلى سيرفر يحتفظ بها. أما عن جمع القيم فهو أيضاً له نفس الطريقة العامة، أي نقوم بإنشاء زر ليقوم بهذه الوظيفة و نستمع لحدث الضغط عليه، و في تلك الحالة نمر على الأبناء لللائحة و نستخرج كل سعر و نجمعه إلى متغير يخزن المجموع الكلي. بالطبع ينصح بأن تستعمل إحدى أطر العمل لل frontend بدلاً من كتابة كل ذلك لوحدك، دائماً ما يكون هنالك طريقة أسهل بكثير.
×
×
  • أضف...