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

سمير عبود

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

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

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

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

    34

إجابات الأسئلة

  1. إجابة سمير عبود سؤال في مشكلة في جلب البيانات من قاغدة البيانات كانت الإجابة المقبولة   
    مرحباً @Mohammed Aladimi
    يوجد لديك خطأ في السطر:
    <?php $cat = mysqli_query($conn, "SELECT * FROM category"); لأن المتغير conn غير مُعرف في الصفحة الموجود فيها أي new-post.php فالمفروض يتم تضمين الملف الذي يتم من خلاله الإتصال بقاعدة البيانات في رأس الملف حتى يتم التعرف على المتغير conn بإستخدام include مثلاً:
    <?php include 'db/config.php'; // تقوم بتضمين الملف على حسب مساره و إسمه أو أن إسم المُتغير الخاص بالإتصال ليس conn بل إسم آخر الرجاء التأكد جيداً من هذا الأمر التحذيرات التي تأتي بعد هذا الخطأ  ناتجة عنه.
    بالتوفيق.
  2. إجابة سمير عبود سؤال في لماذا ready مشطوب عليها في شفرة JS كانت الإجابة المقبولة   
    مرحباً عبد الواحد 
    يبدو أنك تستخدم نُسخة حديثة من مكتبة jQuery و في النُسخ الحديثة من المكتبة أي من 3.0 فما فوق الطريقة الوحيدة التي يُنصح بإستخدامها هي: 
    $(function() { // Handler for .ready() called. }); لذلك تجد أن الطريقة التي تستخدمها مشطوبة اي لا يُنصح بها أو مُهملة و سيتم حذفها مُستقبلاً.
    توجد أيضاً هذه الطريقة مذكورة في التوثيق الرسمي للمكتبة:
    $.when( $.ready ).then(function() { // Document is ready. }); يُمكنك أيضاً إستخدام vanilla JavaScript لعمل نفس الشيء بهذا الشكل:
    document.addEventListener("DOMContentLoaded", function() { // code... }); فهي الموافقة لها في js كما أود أن أشير إلى أن الخطأ الذي تُواجهه يُمكن أن يكون بسبب آخر لذلك أنصحك بطرح إستفسارك تحت الدرس المُخصص لأن هذا القسم للأسئلة العامة.
    بالتوفيق.
  3. إجابة سمير عبود سؤال في مساعدة في التعامل مع Arrays في C++ كانت الإجابة المقبولة   
    مرحباً @Ali Ali19 
    فهمي للمطلوب هو كالتالي يكون لديك مصفوفتين و الناتج هو مصفوفة جديدة تضم جمع عناصر المصفوفتين إذا كان الفهرس (index) عدداً زوجياً ويقوم بطرح القيمتين في الحالة المُعاكسة:
    يُمكنك إنجاز ذلك من خلال الكود التالي:
    #include <iostream> using namespace std; int main() { int arr1[] = { 2, 2, 2, 2 }; // تعريف المصفوفة الأولى int arr2[] = { 1, 1, 1, 1 }; // تعريف المصفوفة الثانية int result[4]; // تعريف المصفوفة التي ستضم النتائج for(int i = 0; i < 4; ++i){ // حلقة تبدأ من 0 إلى 4 result[i] = i % 2 == 0 ? arr1[i] + arr2[i] : arr1[i] - arr2[i]; // إستخدام العامل الثلاثي لتنفيذ الشرط بطريقة مُختصرة } cout << "Result are: "; // طباعة عناصر المصفوفة النهائية for (const int &n : result) { cout << n << " "; } return 0; } بإمكانك تجربة البرنامج من: هنا كما يُمكنك فهم المُعامل الثلاثي من: هنا
    بالتوفيق.
  4. إجابة سمير عبود سؤال في كيف استرجع ما دفعته للدورة كانت الإجابة المقبولة   
    مرحباً @محمد احمد42
    يُمكنك إستعادة ما دفعت من خلال التواصل مع مركز المساعدة من خلال الرابط التالي و فتح تذكرة لما تريد و سيقوم فريق الدعم الفني بمُساعدتك في أقرب وقت.
    نصيحتي لك إذا كان تخصصك الجامعي يتقاطع مع مجالات البرمجة أن تُنظم وقتك قليلا و تُخصص الوقت للتعلم الذاتي لأن الجامعة لن تُعلمك أشياء كبيرة، فقط أشياء عامة و سطحية و الإنسان الناجح هو من يعرف كيف يوازن إهتماماته و يُنظم وقته، حتى لو كان تخصصك ليس في البرمجة فهي ستُساعدك. لذلك أدرس قرارك جيداً.
    بالتوفيق.
  5. إجابة سمير عبود سؤال في خطأ عند مقارنة String في لغة جافا كانت الإجابة المقبولة   
    الخطأ أنك تستخدم (==) لفحص التساوي و هذا الرمز نستخدمه لفحص إذا كان المرجع هو نفسه، لفحص تساوي سلسلتين نصيتين من حيث القيمة نستخدم الدالة equals و هذه الدالة حساسة للحروف و بالتالي فإن الكود يُصبح بالشكل التالي:
    if(message.equals(words.get(0))){ System.out.println(reply+"Hi!, how are you "+name); message = sca.next(); } إذا كنت تريد فحص تساوي القيمتين مع عدم أخذ طبيعة الحروف بعين الإعتبار يُمكنك إستخدام equalsIgnoreCase.
    بإمكانك تجربة المثال من خلال هذا: الرابط
    بالتوفيق.
  6. إجابة سمير عبود سؤال في إنشاء الدالة البانية (constructor) في لغة ++C كانت الإجابة المقبولة   
    مرحباً @Mari Carmen
    الأسئلة الثلاثة الأولى تطلب منك إنشاء الدالة البانية (constructor) لأصناف الثلاثة (School، Node، Student) أما السؤال الرابع لإنشاء مُدمر (destructor) للصنف Student
    إنشاء School constructor class school { string Name; Node *Head; int n;//number of classes in school public: school(string name) { this->Name = name; this->n = 0; } }; إنشاء Node constructor  class Node { int ID; int NoOfStudents; int NoOfExams; student *t;// a linked list of students is allocated dynamically Node *Next; public: Node(int id) { this->ID = id; this->NoOfStudents = 0; this->NoOfExams = 0; this->t = nullptr; this->Next = nullptr; } }; إنشاء Student constructor  class student { long ID; string Name; string Address; float grades[3]; student *below; public: student(long id, string name, string address) { this->ID = id; this->Name = name; this->Address = address; } }; إنشاء Student destructor: يقوم فقط بطباعة الجملة المطلوبة: ~student() { cout << "student destructor is called"; } ليُصبح الكود بهذا الشكل:
    class student { long ID; string Name; string Address; float grades[3]; student *below; public: student(long id, string name, string address) { this->ID = id; this->Name = name; this->Address = address; } ~student() { cout << "student destructor is called"; } }; class Node { int ID; int NoOfStudents; int NoOfExams; student *t;// a linked list of students is allocated dynamically Node *Next; public: Node(int id) { this->ID = id; this->NoOfStudents = 0; this->NoOfExams = 0; this->t = nullptr; this->Next = nullptr; } }; class school { string Name; Node *Head; int n;//number of classes in school public: school(string name) { this->Name = name; this->n = 0; } }; يُمكنك إنجاز بقية الأسئلة كما يُمكنك الإعتماد على هذه الدروس: سلسلة ++c للمحترفين 
    بالتوفيق.
  7. إجابة سمير عبود سؤال في C# داله كانت الإجابة المقبولة   
    مرحباً @Anwar Mohammed
    بإمكانك إستخدام الخوارزمية التالية
    إنشاء سلسلة نصية مبدئية تتكون من n محرف من 'X'، مثلاً إذا كان n = 3 تكون هذه السلسلة XXX تبديل كل X بالسلسلة التي نُريد ان نُكررها  static string RepeatReplace(string s, int n) { return new String('X', n).Replace("X", s); } يُمكنك تجربة المثال من هنا
    بالتوفيق.
  8. إجابة سمير عبود سؤال في multiple select كانت الإجابة المقبولة   
    مرحباً ياسين ،
    يمكنك إستخدام إضافة select2 مع خيار التعدد (multiple) و هذا مثال بسيط عن إستخدامها.
    و بخصوص الbackend سيتم إرسال مصفوفة مع الطلب تضم القيم التي إختارها المُستخدم.
    بالتوفيق.
  9. إجابة سمير عبود سؤال في نصائح للحصول على دخل من العمل الحر كانت الإجابة المقبولة   
    مرحباً @Ahmed Edress
    هناك العديد من المجالات التي يُمكنك العمل فيها على منصات العمل الحر سواء الأجنبية أو العربية لكن أنصحك في بداية الأمر الدخول إلى المنصات العربية و أشهرها منصة مستقل و خمسات لكن تأكد أن المنافسة على المشاريع شديدة و فُرصة الحصول على مشروعك الأول صعبة لكن الأمر ليس مُستحيل فكما حصل المستقلين السابقين على أول عمل لهم يُمكنك أنت أيضاً، لكن هناك بعض النقاط ضرورية تزيد من فرصك للحصول على أول مشروع لك:
    إختيار مجال على المنصة هناك عدة مجالات: أعمال وخدمات استشارية، برمجة، تطوير المواقع والتطبيقات، تصميم وأعمال فنية وإبداعية، تسويق الكتروني ومبيعات،كتابة ، تحرير، ترجمة ولغات، دعم، مساعدة وإدخال بيانات، تدريب وتعليم عن بعد ... عليك إكتساب خبرة كافية تُخولك لإنجاز مشاريع بالجودة التي يريدها صاحب المشروع في المجال الذي اخترته و هذا الشيء ضروري يُمكنك إلقاء نظرة عن عينة من المشاريع و التأكد من ذلك هل أنت فعلاً قادر على إنجازها أم لا؟ الإهتمام بملفك الشخصي و معرض أعمالك لأنه واجهتك بالنسبة لصاحب المشروع و هو الدليل على خبرتك في المجال  تقديم عروض إحترافية و مُقنعة و غير مبالغ فيها على المشاريع و عند وتقديمك للعرض ضع نفسك مكان صاحب المشروع و اسأل نفسك هل صاحب هذا العرض هو الشخص المُناسب أم لا. ستجد على مدونة مُستقل و مدونة خمسات العديد من النصائح و المقالات التي ستكون مفيدة لك أذكر منها:
    نصائح للمستقلين العمل الحر أتمنى لك التوفيق
  10. إجابة سمير عبود سؤال في ماهي Design Patterns كانت الإجابة المقبولة   
    مرحباً @الشيخ المختار الشنقيطس
    أنماط التصميم (Design Patterns) هي عبارة أساليب أو طرق مٌبتكرة يتم إستخدامها لحل مشاكل مُتكررة أي صادفت العديد من المُطورين من قبل. ويُمكن تقسيم هذه الأنماط إلى عدة أنواع يُمكن إختزالها في ثلاثة أنواع:
     أنماط التصميم الإنشائية أنماط التصميم الهيكلية أنماط التصميم السلوكية لكن قبل الدخول و الغوص في هذا المجال عليك معرفة أن هذه الأنماط ليست متعلقة بلغة برمجة مُعينة و إنما يُمكن تطبيق النمط بأي لغة برمجة. أيضا حتى تستطيع فهم النمط و أين تستخدمه و ماهي الحالات التي تستعمل فيها النمط عليك أن تدرس و تفهم البرمجة الكائنية جيدا وتفهم الأسس الأربعة التي بُنيت عليها:
    Abstraction Encapsulation  Inheritance Polymorphism بعد فهم هذه المبادئ جيداً أدرس العلاقات بين الكائنات ك Association ، Composition  Aggregation و ماهو الفرق بينها، بعدها أدرس مبادئ التصميم و هي 5 و تُسمى SOLID principles بعد الفهم الجيد لهذه الأشياء ستتمكن من فهم أنماط التصميم و كيفية تطبيقها و متى تُطبقها.
    يُمكنك متابعة هذه السلسلة من خلال هذا الرابط: SOLID Principles بالعربى ثم هذه السلسلة: Creational Design Patterns بالعربى ثم هذه السلسلة: Structural Design Patterns بالعربى إذا كنت تستخدم لغة PHP فستُفيدك هذه السلسلة جيداً كما قلت سابقاً فالأنماط ليست تابعة للغة مُحددة يُمكنك تطبيقها بأي لغة كانت: إضغط هنا
    كما يُمكنك الإعتماد على توثيق موسوعة حسوب بخصوص أنماط التصميم من: هنا
    كما يوجد بعض المقالات حول أنماط التصميم على الأكاديمية يُمكنك الوصول لها من خلال هذا الرابط: إضغط هنا
    بالتوفيق.
  11. إجابة سمير عبود سؤال في مشكل النسيان كانت الإجابة المقبولة   
    مرحباً @Barmaja Barmaja
    نحن كمربمجين أو كمطورين لسنا مُلزمين بحفظ الأكواد أو الشيفرات البرمجية إنما علينا إيجاد حلول برمجية للمشاكل وفهم الأسس و المبادئ على سبيل المثال يُمكننا نسيان طريقة كتابة حلقة for في لغة جافاسكربت لكن لا يُمكننا نسيان مفهوم الحلقة و ماهي فائدتها و لماذا نستخدمها فإذا نسينا طريقة الكتابة يُمكننا ببساطة الرجوع إلى توثيق اللغة أو درس من دورة ما أو مقال و سنتذكر طريقة الكتابة لكن إن نسينا المفهوم في حد ذاته هنا المشكلة.
    بما أنك في بداية المشوار فهذا الأمر طبيعي لكن بالممارسة و التطبيق العملي و إنشاء مشاريع كثيرة ستتعود على كتابة الشيفرات البرمجية حتى و إن نسيت يُمكنك المراجعة حينها فنحن لسنا في إمتحان.
    الخلاصة ببساطة يمكنك أن تنسى طريقة تطبيق المفهوم، لكن لا يليق بك أن تنسى المفهوم نفسه.
    بالتوفيق.
  12. إجابة سمير عبود سؤال في هل إستخدام Bootstrap يغني عن كتابة CSS العادي؟ كانت الإجابة المقبولة   
    مرحباً @salahkr 
    نعم بإمكانك الإعتماد على إطار Bootstrap أو أحد الأطر الأخرى ك Foundation أو Bulma أو Materialize ... أو يُمكنك إستخدام tailwind الذي يُعتبر أيضاً إطار عمل من المستوى المنخفض خاص بالcss فعِوض أن تكتب خصائص css ستقوم بكتابة مجموعة من الأصناف (classes) تُعبر عن كل خاصية في كل عنصر و هذا التوثيق الخاص بكل إطار:
    Tailwind Materialize Bootstrap Bulma Foundation لكن قد تجد نفسك أحياناً في حالات تُحتم عليك تعديل بعض الأشياء و في هذه الحالة سيتوجب عليك كتابة css العادي أحياناً المشروع ككل عبارة عن صفحة واحدة لعرض مُنتج أو صفحة نزول لتطبيق إلكتروني يُمكنك في هذه الحالة إستخدام الcss العادي لأنك بطبيعة الحال لن تحتاج لكافة الكلاسات و الخصائص التي يُوفرها إطار العمل. عند إستخدامك لإطار العمل ستجد نفسك مقيد بالقيم التي يوفرها بعكس عند إستخدامك للcss العادي فستكون لديك الحُرية الكاملة لإستخدام القيم التي تريد.
    بالتوفيق.
  13. إجابة سمير عبود سؤال في شرح فكرة بناء pyramid منطقيا كانت الإجابة المقبولة   
    العداد coun يبدأ من 0 إلى الإرتفاع بمعنى إذا كان hgt == 3 فسيكون تكرار الحلقه الخارجية 3 لأن العداد يبدأ من 0 و سيأخذ القيم 0، 1، 2 و هو ما يوافق عدد الصفوف أو الإرتفاع 3
    العداد w يأخذ قيما متعلقة ب coun فعندما يكون coun == 0 سيتم الدخول إلى الحلقة الداخلية و تنفيذ محتواها و هذا إذا كان الشرط فيها أقل أو يساوي و بالتالي سيتم طباعة # مرة واحدة. أما عندما يكون coun == 2 فتكرار الحلقة الداخلية سيكون 3 و w سيأخذ القيم 0، 1، 2 و بالتالي سيتم طباعة ### 3 مرات و بهذا الشكل نكون قد حققنا الهرم المطلوب:
    hgt == 3
    coun == 0, 1, 2 : ثلاثة لفات تقابلها 3 صفوف في الهرم 
    w في اللفة الأولى للحلقة الخارجية سيكون 0 و بالتالي طباعة # مرة واحدة ثم الإنتقال إلى سطر جديد
    w في اللفة الثانية للحلقة الخارجية سيكون 0 ثم 1 و بالتالي طباعة ## مرتين ثم الإنتقال إلى سطر جديد
    w في اللفة الثالثة للحلقة الخارجية سيكون 0 ثم 1 ثم 2 و بالتالي طباعة ### ثلاث مرات ثم الإنتقال إلى سطر جديد و في هذا الوقت سيكون coun == 2 و عند رفع قيمته ب 1 سيُحقق شرط الخروج من الحلقة الخارجية لأن hgt == 3 ثم إنهاء البرنامج و النتيجة ستكون 
    #
    ##
    ###
    بالتوفيق.
  14. إجابة سمير عبود سؤال في مكتبة Discord.js كانت الإجابة المقبولة   
    مرحباً @Bassel Ahmed
    لغة البرمجة التي بنيت عليها هذه المكتبة هي لغة JavaScript لذلك تحتاج إلى تعلم أساسيات لغة JavaScript ثم تنتقل إلى تعلم معايير ES6 وما فوق و بعدها تتعلم أساسيات node.js.
    من خلال الموقع الرسمي للمكتبة فهي تعتبر وحدة خاصة ب node.js للتعامل مع الBots 
    BOT: هو تطبيق برمجي يتم بناؤه لعمل بعض المهام الإعتيادية المتكررة و يعمل بشكل اوتوماتيكي و بشكل اسرع.
    Node.js : هو نظام برامج مبني على محرك chrome JavaScript v8 و تم عمله لبناء تطبيقات انترنت قابلة للتوسع كخوادم ويب لأن لغة جافاسكربت تعمل فقط في المتصفح و بإستخدام node.js يمكننا إستخدامها في جهة الخادم أيضاً 
    Es6: هي عبارة عن معايير موحدة تم عملها من قبل منظمة متخصصة.
    بالتوفيق
  15. إجابة سمير عبود سؤال في if in javascript كانت الإجابة المقبولة   
    مرحباً @Momen Gamal
    التعبير البرمجي الشرطي ( if statement ) متشابه في كافة لغات البرمجة و يُكتب بهذا الشكل:
    if (condition) { // في حالة تحقق الشرط } else { // في حالة عدم تحقق الشرط } أما الشرط المٌختصر أو كما يُسمىConditional (ternary) operator فيُكتب بهذا الشكل: 
    condition ? exprIfTrue : exprIfFalse بمعنى إن كان الشرط صحيح نفِذْ ما بعد علامة الإستفهام و إن كان خاطئ نفِذْ ما بعد النقطتين
    مثلاً: نريد إنشاء دالة لإرجاع القيمة الأكبر (max) من قيمتين أي أننا سنقوم بإنشاء دالة تقبل وسيطين و ترجع الأكبر 
    1- بإستخدام if statement العادية:
    function max(n1, n2) { var max; if(n1 > n2) { max = n1; } else { max = n2; } return max; } 2- بإستخدام ال ternary operator:
    function max(n1, n2){ var max = (n1 > n2) ? n1 : n2; return max; } أو يُمكننا الإستغناء عن المتغير max بهذا الشكل:
    function max(n1, n2){ return (n1 > n2) ? n1 : n2; } مراجع:
    1- MDN
    2- موسوعة حسوب
    3- javascript.info
    كما يُمكنك إلقاء نظرة على هذا المقال:
    بالتوفيق.
     
  16. إجابة سمير عبود سؤال في كيف أستفيد من كوبون لدورات أكاديمية حسوب كانت الإجابة المقبولة   
    مرحباً صالح 
    لا يُمكن معرفة صلاحية الكوبون من عدمه لذلك أنصحك بالتواصل مع فريق الدعم للإستفسار عن الأمر و سيردون عليك في أقرب وقت.
    يُمكنك زيارة مركز المساعدة من خلال هذا الرابط: إضغط هنا و قُمْ بفتح تذكرة للإستفسار و إن كان الكوبون صالح سيُعلِمونك بذلك.
    و إن كان معك كوبون صالح يُمكنك إستعماله من خلال: 

    كما يُمكنك الإستفسار من فريق الدعم كيفية إستعماله و الإستفادة منه أيضاً. بالتوفيق.
  17. إجابة سمير عبود سؤال في مشكلة في فهم لغة JavaScript كانت الإجابة المقبولة   
    مرحباً @خالد مجذوب
    البدايات دائماً ما تكون صعبة فحتى تتعود على كتابة الأكواد بنفسك عليك أن تُطبق كثيراً لا تحفظ الأشياء و إنما تعلم كيفية عملها طبق وراء المُدرب كثيراً و أعطِ لنفسك وقت لفهم و إستيعاب الدرس جيداً و لا تنتقل إلى الدرس المُوالي قبل فهمك للدرس الحالي , لا تعتمد فقط على مقاطع الفيديو و الدروس المرئية هناك دروس و مقالات على الأكاديمية ستُفيدك أيضاً اعتمد على موسوعة حسوب فبها توثيق لمُعظم اللغات و التقنيات.
    بعد إنهائك لمسار من المسارات لا تنتقل مباشرة إلى المسار القادم حاول التفكير في عمل مشروع صغير بالمعرفة و المعلومات التي كسبتها من خلال المسار و من خلال بحثك من هنا و هناك. لا تقلق إن نسيت شيء فيُمكنك الرجوع له في أي وقت و هذا ليس شيء خاطئ بالعكس فهذا شيء جيد فنحن لا نحفظ الشيفرات البرمجية. عند عملك لمشروعك الصغير ستواجهك بعض المشاكل هذه الأخطاء و المشاكل هي ما يجعلك مُحترف و يجعل مُستواك يرقا و يتطور حاول إيجاد حلول لها جرب الحلول التي تراها مناسبة و لا تخف منها جرب حتى ولو كان ما يمليه عليك عقلك خاطئ إبحث من خلال مُحرك البحث أو إسأل هنا في الأكاديمية أو في مجتمع حسوب.
    ستُلاحظ بعد إنجازك لشيء أو فكرة من مخيلتك ببعض من الراحة و هذا ما سيُعطيك دافع للإستمرار في التعلم . طبق هذه المراحل على كافة مسارات الدورة و ستُلاحظ فرق في المُستوى.
    في الأخير أريد أن أنوه لشيء و هو أن المرء لن يُصبح خبيراً بين ليلة و ضحاها يحتاج وقت و صبر ومثابرة وإرادة. عليك بالتطبيق العملي كثيرا حتى و لو كنت تٌطبق مع المُدرب أو من فيديو سيأتي وقت و تتعود و تتمكن من الإعتماد على نفسك حاول مُخالفة المُدرب قليلا و جرب بعض الأمور من عندك فهذا سيفيدك أيضاً.
    آمل أن أكون قد أفدتك بشيء أتمنى لك التوفيق.
  18. إجابة سمير عبود سؤال في كيفية عرض صور عشوائية باستخدام JavaScript كانت الإجابة المقبولة   
    مرحباً @Ali Kangooni
    إذا كنت تريد عرض ثلاث صور مثلاً و عند الضغط على أحد هذه الصور تقوم بعرض صورة من 3 صور أخرى تكون مخفية و تريد عرض هذه الصورة عشوائياً يُمكنك إستخدام هذه الطريقة:
    اولاً تقوم بإضافة كافة الصور إلى صفحة ال html الخاصة بك بهذا الشكل مثلا:
    <img id="img_1" src="https://via.placeholder.com/200?text=1" alt="صورة 1"> <img id="img_2" src="https://via.placeholder.com/200?text=2" alt="صورة 2"> <img id="img_3" src="https://via.placeholder.com/200?text=3" alt="صورة 3"> <img id="img_4" src="https://via.placeholder.com/200?text=4" alt="صورة 4"> <img id="img_5" src="https://via.placeholder.com/200?text=5" alt="صورة 5"> <img id="img_6" src="https://via.placeholder.com/200?text=6" alt="صورة 6"> هنا قمنا بإستعمال موقع placeholder لإضافة صور للصفحة كما قمنا بإعطاء كل صورة مُعرف id خاص بها و ستظهر الصور بهذا الشكل: 

    ثانياً نقوم بإخفاء الصور 4 و 5 و 6 و ذلك بإستخدام خاصية display و نقوم بإعطائهم الصنف المُشترك hidden كي نستطيع تحديدهم لاحقاً بالجافاسكربت بهذا الشكل:
    <img id="img_4" class="hidden" style="display: none;" src="https://via.placeholder.com/200?text=4" alt="صورة 4"> <img id="img_5" class="hidden" style="display: none;" src="https://via.placeholder.com/200?text=5" alt="صورة 5"> <img id="img_6" class="hidden" style="display: none;" src="https://via.placeholder.com/200?text=6" alt="صورة 6"> ثالثاً نقوم بإعطاء الصنف clicked_img للصور 1 و 2 و 3 لأننا سنستخدمه في الجافاسكربت أيضا بهذا الشكل:
    <img id="img_1" class="clicked_img" src="https://via.placeholder.com/200?text=1" alt="صورة 1"> <img id="img_2" class="clicked_img" src="https://via.placeholder.com/200?text=2" alt="صورة 2"> <img id="img_3" class="clicked_img" src="https://via.placeholder.com/200?text=3" alt="صورة 3"> الآن الصفحة تحمل 6 صور 3 منهم معروضة و 3 مخفية .
    رابعاً ننتقل إلى جزء الجافاسكرت و سنستخدم مكتبة jQuery لأنها ستُسهل كتابة الشيفرات لذلك سنقوم بتضمينها أولاً بهذا الشكل:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> خامساً نحتاج إلى كتابة دالة بإستخدام لغة جافاسكربت تقوم بإرجاع كل مرة رقم عشوائي نحن نقوم بتحديد المجال فقط: function randomInteger(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } هذه الدالة تقوم بإرجاع كل مرة رقم عشوائي يكون محصور بين min و max فلو حددنا عند منادة الدالة المعاملات 4 و 6 فستجلب كل مرة رقم عشوائي 4 أو 5 أو 6. سادساً نقوم بكتابة شيفرات الجافاسكربت التي تقوم بمعالجة حدث النقر على الصور الثلاثة الأولى و التي أعطيناها الصنف clicked_img بهذا الشكل: $('.clicked_img').on('click', function() { // clicked_imgبمعنى قم بالتسمع لحدث النقر على أي من العناصر التي تحمل الصنف $('.hidden').hide(); // في حالة حدوث الحدث قم بإخفاء أي عنصر يحمل الصنف hidden var rand = randomInteger(4, 6); // إستدعاء الدالة السابقة لجلب رقم عشوائي من 4 إلى 6 $('#img_' + rand).show(); // بالإستعانة بالرقم العشوائي نكون مُعرف أحد الصور المخفية و نقوم بتحديد العنصر و إظهاره }) سابعاً في حالة كان أحد الصور الثلاثة 4 أو 5 أو 6 ظاهراً و قمنا بالضغط عليه نقوم بإخفائه بهذا الشكل:
    $('.hidden').on('click', function() { $(this).hide(); }) و هذه ال pen تطبيق للمثال و الشرح أعلاه:
    بالتوفيق.
  19. إجابة سمير عبود سؤال في ما فائدة التدوين في أكاديمية حسوب كانت الإجابة المقبولة   
    مرحباً @Nedjadi Med
    نعم سيدفعون لك فهم ينشرون بشكل دوري مشاريع ترجمة أو كتابة مقالات على منصة مستقل و هذا ما تم ذكره في صفحة: اكتب معنا لذلك إن كنت مهتم و توفرت فيك الشروط التي يشترطونها قم بالتقديم على المشاريع التي تناسبك وسيتواصلون معك.
    بالتوفيق
  20. إجابة سمير عبود سؤال في خطأ في git كانت الإجابة المقبولة   
    مرحباً @Sami Remili
    الخطأ في كلمة cache فهي cache وليست cashe. و هنا طريقة عمل cache لل credentials: إضغط هنا 
    ستجد في هذا السؤال على stackoverflow نفس الطريقة: إضغط هنا أيضاً في هذا المقال شرح مفصل عن الموضوع : إضغط هنا
    بالتوفيق
  21. إجابة سمير عبود سؤال في ما هي أفضل منصة لإنشاء متجر الكتروني eCommerce كانت الإجابة المقبولة   
    مرحباً @Imane Alhadi
    أنصحكِ بالإطلاع على هذا المقال : دليلك لاختيار أفضل منصات التجارة الإلكترونية لأنه هناك العديد من المعايير و النقاط التي يجب النظر فيها قبل إختيار منصة التجارة الإلكترونية المناسبة لك و للمشروع الخاص و قد تم شرحها بالتفصيل في المقال
    بالتوفيق.
  22. إجابة سمير عبود سؤال في أرغب في تعلم البرمجة من الصفر كانت الإجابة المقبولة   
    مرحباً @Imane Alhadi
    ستجدين في هذا المقال كل ما تبحثين عنه في ما يخص البرمجة و لغات البرمجة بالإضافة إلى مجالات البرمجة و نصيحتي لك أن تختاري مجالاً واحداً يُعجبك و تتعلمين كل شيء فيه 
    بالتوفيق
  23. إجابة سمير عبود سؤال في أشعر بالملل في حياتي رغم وجود أهداف لي كانت الإجابة المقبولة   
    مرحباً ...
    طبيعي أن يشعر المُتعلم بالملل أثناء رحلة تعلمه و كلنا قد مررنا بهذه المرحلة لذلك أنصحك بالصبر و تنظيم وقتك مثلاً تضع 3 أو 4 ساعات فقط للتعلم يومياً و تُمارس نشاطاتك الأخرى و أنصحك أيضا بمتابعة مطورين و مبرمجين في نفس المجال الذي تتعلمه فهذا سيُحفزك و يُعطيك دافع أقوى في التعلم . أيضا لا تُشوش ذهنك و تُشتت نفسك بالمُقارنات التي ليس لها معنى و تُركز على هدفك و أهم شيء وضع خطة أو مسار كيف تصل إلى هدفك فبتقسيم هدفك إلى نقاط و المرور عليها الواحدة تلو الأخرى سيُشعرك بالراحة و يجعلك تُواظب على الخُطة التي وضعتها .
    لا تحسبن المجد تمراً أنت آكله لن تبلغ المجد حتى تلعق الصبرا. دائماً ضع هذا البيت الشعري في ذهنك فأنت لن تصل لهدفك بسهولة ستمر عليك أوقات صعبة ستحتار ستشعر بالملل ستمر بإنتكاسات لكن لا تجعل هذه العقبات تُبعدك عن هدفك و هذا الأمر ليس في البرمجة فقط بل في جميع أهدافك في الحياة 
    و هذه بعض النصائح من مبرمجين أتمنى أن تفيدك :
    أتمنى لك التوفيق
  24. إجابة سمير عبود سؤال في لم اجد زر سحب الرصيد في مستقل كانت الإجابة المقبولة   
    مرحباً @Mohamed Mejri
    زر سحب الرصيد يظهر عندما يتوفر الحد الأدنى من الرصيد القابل للسحب في حسابك وهو 25 دولار .
    قم بعمل clear cache للمتصفح الخاص بك و تحديث الصفحة بإستمرار و في حالة لم يظهر الزر يُمكنك مواصلة الدعم الفني من خلال فتح تذكرة : إضغط هنا لفتح تذكرة و سيقوم فريق الدعم بحل مُشكلتك في أقرب وقت 
    بالتوفيق
  25. إجابة سمير عبود سؤال في ما الفرق بين الرصيد المتاح و الرصيد القابل للسحب ؟ كانت الإجابة المقبولة   
    مرحباً ...
    الرصيد المُتاح هو الرصيد الذي يُمكنك إستخدامه لفتح مشاريع جديدة في مُستقل 
    أما الرصيد القابل السحب فهو المبلغ المتبقي من الأرباح التي حققتها في مستقل و يمكنك سحبها .

    بالتوفيق
×
×
  • أضف...