-
المساهمات
1588 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
1
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Khaled Osama3
-
تخصص الذكاء الاصطناعي يعتبر من أهم وأكثر التخصصات مستقبلاً سواء في السوق العربية أو العالمية. والطريقة الأفضل للبحث عن فرص عمل هي عبر مواقع التوظيف أو تواصل مباشر مع الشركات ذات الصلة. ويمكنك تأسيس شركة تقدم خدمات أو حلول في AI في دول ما زال هناك طلب عليها. والأفكار المبتكرة لها فرص جيدة. لكن بالنسبة للأمن السيبراني هو أيضا تخصص مستقبلي مهم وفرص عمل كثيرة له. يمكن العمل عبر منصات عمل حر في كلا المجالين ولكن بقله فالمجالين مطلوبين في الشركات اكثر من العمل الحر. أما أيهما أنسب، فأنصحك بأن تبحث عن مجالك المفضل بناء على ميولك الشخصية ومهاراتك, فلا مانع ان تجرب ان تبدأ في كل مجال لمده شهر وليكن فاذا اعجبك يمكنك ان تكمل فيه ولكن يمكنك ايضا ان تنقل للمجال الثاني ولكن لا انصح بالمجالين مع بعض لانهم غير قريبين وستواجه صعوبه كبيره فابدأ في كل مجال ع حدا حتي تقرر بنفسك ايهم انسب لك.
-
المشكلة هنا أن useState لا يقوم بتحديث الحالة بشكل مباشر، بل يقوم بدمج التحديثات بشكل تفريغي. لذلك بعد الدعوة إلى setMovies لن يتم عرض الحالة المحدثة مباشرة. يمكنك استخدم استدعاء دالة useEffect مع توقيع movies: useEffect(() => { console.log('movies', movies); }, [movies]); لذا يجب الانتظار حتى يتم تطبيق التحديث ثم استخدامه.
-
يمكنك موقع لارافيل الرسمي فهو يتم تحديثه باستمرار بمعلومات عن الإصدارات والتغييرات الرئيسية, ومتابعه GitHub لمتابعة التغييرات على مستودع لارافيل الرئيسي, و انضم إلى المجتمعات المتخصصة في Laravel عبر منتديات الإنترنت وشبكات التواصل الاجتماعي, وزيارة مواقع مثل Laravel News و Laravel Daily لتلقي أخبار ومقالات حديثة حول Laravel. كما يجب متابعة أحدث الإصدارات يدويا من حين لآخر للتأكد من عدم فوت أي تحديثات.
-
نصيحتي لك هي: اكمل باذن الله دورة تطوير الواجهات الأمامية التي تتابعها حاليا, فهذه الدورة مهمة لتعلم جوانب تصميم وإنشاء الواجهات.ثم يمكنك ممارسة حل المشاكل على موقع LeetCode فهي جيدة لتحسين مهارات البرمجة, لكن اجعل ذلك بعد انتهائك من الجافا سكريبت حتى تستوعب كل ما تدرسه جيدا .
- 2 اجابة
-
- 1
-
يمكنك تشغيل السكريبت عبر الدالة exec في PHP ستنادي علي سكريبت بايثون من داخل متغير Controller باستخدام الخاصية PHP `exec()` أو `system()` // اسم ملف السكريبت في مجلد resources/python $scriptPath = base_path('resources/python/index.py'); // الأمر لتشغيل سكريبت Python $command = "python $scriptPath"; // تشغيل السكريبت exec($command, $output, $exitCode); // التحقق من إذا كان هناك أخطاء if ($exitCode !== 0) { echo "حدث خطأ أثناء تشغيل السكريبت"; } else { echo "تم تحويل الملفات بنجاح!"; }
-
لا يوجد حل صارم فيمكنك ان تفعل الخياران ولكن حسبما تريد لتطوير كود برنامج سابق: تكمل على نفس الملف القديم: هذا الخيار يتيح لك الاستمرار في نفس المشروع وتطويره تدريجيا. مزاياه أنه يحافظ على استمرارية العمل وتاريخ التعديلات. ولكن قد تؤدي التعديلات إلى إفساد الكود القديم. او تبدأ ملف جديد: هذا يتيح إعادة البدء من الصفر بتصميم أفضل. ويضمن عدم إفساد الكود الأصلي أثناء التعديلات. لكن قد تفقد بعض تاريخ التطوير. أنا أوصي بالخيار الثاني خاصة إذا كانت التعديلات ستطرح تغييرات كبيرة في التصميم او لمجرد التجربه. ويمكنك تسمية الملف الجديد مثلا recong2.py للحفاظ على تاريخ الإصدارات.
- 2 اجابة
-
- 1
-
الكمبيوتر سيفهم أن 1 يعني True و 0 يعني False السبب هو أن بايثون مثل باقي لغات البرمجة تعامل القيم 1 و 0 على أنها قيم منطقية boolean. فمثلاً لو طلبنا من الكمبيوتر أن يطبع قيمة متغير بعد تحديده على 1 سيطبع True لأنه يفهم أن 1 هنا تمثل القيمة المنطقية الحقيقية True. وبالمثل لو حددنا المتغير على 0 سيطبع False لأن 0 تمثل القيمة المنطقية الكاذبة False. فالكمبيوتر لن يعتبر 1 مجرد رقم وانما سيفسرها على أنها قيمة منطقية boolean. ولكن يُفضل استخدام True بدلاً من 1 لتوضيح النية وجعل الكود أكثر وضوحًا وقراءة. هناك حالات محددة يمكن فيها اعتبار الرقم true أو false في لغة البرمجة: - يعتبر الرقم 1 true دائما. فأي تعبير يساوي 1 سيعتبر true. if 1: print("True")#سيطبع True - أي رقم غير الصفر يعتبر true مثل : ، 2، -1، -2 if 10: print("True")#سيطبع True - الصفر يعتبر false. if 0: print("True") else: print("False")#سيطبع False - الأرقام التالية تعتبر false: 0, 0.0, None, False, "", [], {}, () - أي قيمة موجودة تعتبر true. مثل: if name: - يمكن تحويل الأرقام إلى قيم منطقية باستخدام bool(). مثال: if bool(1): print("True") if bool(0): print("False") في حالة عدم وجود قيمة أو كانت القيمة مساوية للصفر ستعتبر false، وفي باقي الحالات ستعتبر true.
- 2 اجابة
-
- 1
-
الدالة ord() في بايثون تقوم بحساب القيمة العددية لأول حرف في سلسلة ما. تستخدم الدالة ord() لتحويل الرموز أو الحروف إلى أرقام أو قيم عددية حسب جدول الرموز العددية التي يتم استخدامها من قبل لغة البرمجة. فجدول الرموز العددية أو الجدول الأسكي (ASCII) هو معيار لتمثيل الرموز والأحرف بأرقام عشرية بحيث يتم ترميز كل رمز أو حرف برقم محدد. هذا الترميز الرقمي يسمح بمعالجة النصوص والرموز على شكل أرقام في الحواسيب، مما يسهل تخزينها ومعالجتها. أهم مميزات وخصائص جدول الرموز العددية: يتكون من 128 رمز وحرف. يبدأ الترقيم من 0 إلى 127. تم اعتماده من قبل العديد من أنظمة التشغيل. يحتوي على أحرف الإنجليزية وأرقام ورموز خاصة. الأرقام من 32-126 تخص الحروف والرموز. الأرقام الأخرى لرموز تحكم أو خاصة. يمكن الإطلاع على الجدول بالتفصيل لمعرفة الرمز أو الحرف المقابل لكل رقم عددي. وهذا ما تستخدمه دالة ord() لتحويل الحروف إلى أرقام. بشكل عام تقوم الدالة بأداء المهام التالية: تأخذ سلسلة مكونة من حرف واحد كمعطى. تعيد القيمة العددية الموافقة لذلك الحرف وفقاً لجدول الرموز. مثال: ord('a') ستعيد 97. تستخدم لتحويل النص إلى أرقام قبل معالجتها أو نقلها. تساعد في التعامل مع النصوص على أنها أرقام.
- 3 اجابة
-
- 1
-
نعم يمكنك تحديث أي مكتبة أو إطار عمل دون الحاجة لمسح المكتبة وإعادة تنزيلها مرة أخرى. في Python يمكنك تحديث المكتبات أو الإطارات باستخدام أمر pip: pip install --upgrade <package_name> حيث يقوم أمر pip install بتحديث المكتبة أو الإطار إلى آخر إصدار متاح دون المساس بالملفات الموجودة مسبقا. مما يعني أنك لن تحتاج لمسح شيء وإعادة تنزيل، بل سيقوم ببساطة بتحديث المكتبة أو الإطار إلى إصدار أحدث. ولكن يجب ان تحذر قد تحتاج في بعض الأحيان إلى تحديث بعض التعليمات البرمجية داخل المشروع لتتوافق مع التغييرات في الإصدار الجديد.
- 2 اجابة
-
- 1
-
نعم يمكنك استخدام هذه الخاصية قيمتها تشير إلى موقع الصفحة: <a href="home.html#section2">Back</a> بحيث يجب ان تعطي السكشن المراد الذهاب اليه نفس قيمه ال id <section id="section2"> <!-- Add your content here --> </section> هذه الطريقه ستعيد المستخدم إلى السكشن المطلوب بدلاً من العودة إلى أعلى الصفحة الرئيسية.
- 2 اجابة
-
- 2
-
يمكنك استخدام مكتبة random في Python لتطوير هذه اللعبة حيث هي مكتبة تستخدم لإنتاج أرقام عشوائية أو ترتيب عناصر عشوائياً. تعتمد على ساعة الوحدة المركزية وبيئة تشغيل بايثون لإنتاج أرقام عشوائية حقيقية متنوعة وغير قابلة للتنبؤ. 1. اكتب السطر التالي لإستيراد المكتبة random التي ستساعدنا في اختيار رقم عشوائي: import random 2. قم بتعريف المتغيرات اللازمة مثل: الرقم_السري = random.randint(1, 10) # يتم اختيار الرقم السري عشوائيا بين 1 و 10 محاولات = 0 3. بدء اللعبة وشرح القواعد: print("أهلاً بك في لعبة التخمين!") print("أنا اخترت رقماً بين 1 و 10. جرب حظك!") 4. البدء في الحلقة التكرارية لتحديد عدد المحاولات. while محاولات < 10: 5. داخل الحلقه التكراريه اطلب تخمين المستخدم . تخمين = int(input("ادخل تخمينك للرقم (بين 1-10): ")) 6. وقارنه مع الرقم السري وطبع رسالة تخبر بالنتيجة (أقل/أكبر/صح). if تخمين == الرقم_السري: print(f"تهانينا! لقد حزرت الرقم {الرقم_السري} بعد {محاولات} محاولات.") break elif تخمين < الرقم_السري: print("تخمينك أقل من الرقم السري") else: print("تخمينك أكبر من الرقم السري") 7. وزياده عدد المحاولات محاولات += 1 8. إنهاء اللعبة بعد 10 محاولات if محاولات == 10: print("لقد استنفذت كل محاولاتك. الرقم السري هو:", الرقم_السري)
-
الوقت الفعلي المطلوب لتعلم والعمل في أي مجال قد يختلف بشكل كبير من شخص لآخر بناء على عوامل مثل: خلفية وميول الشخص السابقة. كمية الوقت المخصصة للتعلم يوميا. المقدرة الشخصية وسرعة الاستيعاب. توافر الدعم والمصادر التعليمية الجيدة. سابقة الخبرة في مجالات متصلة. حيث لا يمكن إعطاء تقدير دقيق للأوقات بالضبط بين الأفراد. المهم أنك تأخذ الوقت اللازم لك للتعلم والتطبيق حسب قدراتك وظروفك الشخصية. ولا تقارن نفسك مع الآخرين. نعم الويب تعلمه اسهل واسرع من مجال ال ai
-
لا توجد اجابه حاسمه فمن وجهة نظري، هناك بعض العوامل التي يجب أخذها في الاعتبار عند اختيار بين مجالي الويب أو AI: مجال الذكاء الاصطناعي من المتوقع أن يكون له تأثير كبير على مختلف القطاعات في السنوات القادمة. فرص العمل حالياً توجد فرص عمل أكثر في مجال الويب، ولكن مع الوقت ستزداد فرص العمل في مجال AI. المهارات مجال AI يتطلب مهارات رياضياتية وبرمجية أعمق مقارنة بالويب. فيتطلب وقت اكثر للتمكن منه وتصبح قادر ع مواكبه سوق العمل. إذا كان لديك الوقت والرغبة في تعلم مهارات جديدة، فيمكنك البدء بالويب ثم توسيع مهاراتك لاحقاً في مجال AI. ومن الافضل ان تأخذ في كل مجال قشوره حتي تتأكد انك ميال لاي مجال منهم وتبدأ فيه باذن الله.
-
بالنسبة للسؤال الأول: - مهندس ذكاء اصطناعي (AI Engineer) - باحث في الذكاء الاصطناعي (AI Researcher) - محلل بيانات (Data Analyst) - مصمم نماذج ذكاء اصطناعي (AI Model Designer) - مهندس تعلم آلي (Machine Learning Engineer) - مطور أنظمة ذكاء اصطناعي (AI System Developer) أما بالنسبة للسؤال الثاني: نعم ممكن توظف كـ Full Stack Developer مع العمل في مجال الذكاء الاصطناعي. ولكن إلادماج سيكون صعباً لأن المجالان مختلفان. يفضل أن تركز على تطوير مهاراتك في المجال الذي اخترته بشكل جيد لتكون فعّالًا فيه. نصيحتي لك أن تركز على مجال واحد في البداية حتى تتمكن من إتقانه. إن تفرقك بين أكثر من مجال من شأنه أن يبعثر جهودك ويمنعك من الوصول للمستوى المتقدم. اختار إما مجال الذكاء الاصطناعي أو تطوير الويب، حسب ما تشعر أنه يميلك أكثر باهتمامك ومواهبك. ثم ركز عليه تماما حتى تصبح خبيرا فيه. بعد ذلك بعد سنة أو سنتين من التركيز على مجالك الأول، يمكنك توسيع آفاقك لتشمل المجال الثاني تدريجيا، لكن لا تجعل ذلك على حساب الأول.
-
يبدو انه توجد بعض الالتباس بين المسميات وال port الذي تعمل به فانت مخزن في قاعده البيانات الصوره ب port 1469 ويبدو انك تعمل ع port 5173 فلهذا السبب لا يجد هذه الصوره لاختلاف ال port ويبدو انك مخزن في قاعده البيانات الصوره في فولدر images يجب ان تتأكد من الاسم لانك تحاول انا تجلب الصوره وتنادي عليها من فولدر اسمه image وللتأكد من مسار الصوره يمكنك نقل مسار الصوره كاملا ووضعه في new tab واذا ظهرت الصوره اذا ف المسار صحيح واذا لم تظهر يجب ان ترجع وتفحص الملفات
- 6 اجابة
-
- 1
-
تستخدم وظيفة lambda لتعريف دوال غير مسماة (anonymous functions) بشكل مختصر. يمكن استخدام هذه الدوال لتعريف الدوال التي تمثل معادلات رياضية بشكل مرن لحساب التفاضل والتكامل. توفر مكتبات بايثون القياسية مثل sympy و scipy أدوات لحساب التفاضل والتكامل تستخدم وظيفة lambda داخليا. فمثلا يمكن استخدام integrate() مع دالة معرفة بواسطة lambda لحساب التكامل العددي أو التحليلي لدالة. وكذلك differentiate() لحساب التفاضل الجزئي أو الكلي لدالة. بايثون مناسبة للمحاكاة العددية وحل المعادلات التفاضلية بسبب قوتها الحسابية. يمكن تطبيق نتائج حسابات التفاضل والتكامل في مجالات أخرى مثل الرياضيات، الفيزياء، الهندسة والذكاء الاصطناعي. تدعم بايثون الرسم البياني والتحليل العددي مما يجعلها ملائمة لتطبيقات حسابات التفاضل والتكامل. فباختصار، توفر لغة بايثون أدوات تستخدم دوال lambda لتعريف معادلات قابلة للتمديد والتطبيق على حسابات التفاضل والتكامل بكفاءة. اليك بعض الامثله على استخدام وظيفة lambda مع حسابات التفاضل والتكامل في بايثون: # تعريف دالة بواسطة lambda وحساب مشتقها from sympy import * x = Symbol('x') f = lambda x: x**2 derivative(f(x), x) # حساب التكامل العددي لدالة مع تغيير الحدود from scipy import integrate func = lambda x: x**2 integrate.quad(func, 0, 1) # حساب التكامل التحليلي لدالة لوغاريتمية from sympy import * x = Symbol('x') f = lambda x: log(x) integrate(f(x), x) # حساب مشتق مقدار دالة معينة لقيمة لها from sympy import * x = Symbol('x') f = lambda x: x**2 f(1).diff(x) # حساب متوسط دالة على فترة باستخدام integrate from scipy import integrate func = lambda x: x integrate.quad(func, 0, 1)/2
- 1 جواب
-
- 1
-
ممكن توضح الرساله الخطأ اللي بتظهرلك لما تعمل run ممكن تكون مشكله كومبيلر
-
لا يوجد إجابة مطلقة على أفضلية قراءة الكتب أم مشاهدة الكورسات في مجال علوم الحاسب. كلاهما له مميزاته وعيوبه: - القراءة: تساعدك على الاستيعاب العميق للمواضيع وتعمق المعرفة. كما أنك تستطيع العودة للمعلومات والاستفادة منها مرات عديدة. لكن قد تجد القراءة مملة لبعض الأشخاص، كما أنها لا تتيح لك فرصة طرح الأسئلة. - الكورسات: تساعدك على اكتساب المهارات العملية وتطبيق ما تتعلمه. كما أن الشرح يكون مصحوباً بأمثلة. ولكنها قد لا تعطيك نفس مستوى الاستيعاب مثل القراءة. إذن، أفضل شيء هو مزج كلاهما: قراءة الكتب لاكتساب معرفة أعمق، ثم مشاهدة الكورسات لتطوير المهارات العملية. اختر ما يناسبك ولا تقتصر على إحداهما فقط.
- 3 اجابة
-
- 1
-
الأعداد الثنائية هي طريقة لتمثيل الأعداد تستخدم الرقمين 0 و1 فقط، بدلاً من استخدام الأرقام من 0 إلى 9 كما هو الحال في النظام العشري المعتاد. تشير الرقمين 0 و1 في النظام الثنائي إلى حالتين مختلفتين (مثل الشغال وغير الشغال في الدوائر الإلكترونية)، بينما تشير الأرقام في النظام العشري إلى قيم مطلقة. يعود أصل استخدام الأعداد الثنائية إلى علم الرياضيات، إذ كانت تستخدم من أجل التعامل مع المنطق الرياضي في عمليات الجمع والطرح. ومع تطور علوم الحاسوب وظهور الحواسيب الإلكترونية، أصبح من الضروري استخدام نظام تمثيل المعلومات يتناسب مع طبيعة عمل الدوائر الرقمية التي تستخدم فقط الحالتين "0" و"1". لذلك تم اعتماد الأعداد الثنائية لتمثيل البيانات داخل الحاسب، حيث يتم تخزين المعلومات كتسلسلات من الأرقام 0 و1، بدلاً من استخدام التمثيل العشري التقليدي. كما أن معظم لغات البرمجة مثل لغة الآلة (Assembly) ولغة C تستند إلى هذا النظام للتعامل مع البيانات على مستوى التعليمات الدقيقة للمعالج. تمثيل البيانات باستخدام الأعداد الثنائية له مزايا عدة، أهمها ملائمته لطبيعة عمل الدوائر الإلكترونية الرقمية التي تعتمد على الحالتين "0" و"1" فقط في تخزين ومعالجة المعلومات. كما أنه يتيح تخزين البيانات بكفاءة أعلى مقارنة بالأنظمة الأخرى في النظام الثنائي، يتم تمثيل الأعداد على شكل سلسلة من الأرقام "0" و"1"، حيث يحدد موقع كل رقم قيمته. فالرقم الأيمن له أدنى قيمة وهي 2^0 = 1، أما الرقم التالي فله قيمة 2^1 = 2، والثالث قيمة 2^2 = 4، وهكذا دواليك. على سبيل المثال، لو أردنا تمثيل العدد 13 بالنظام الثنائي لكانت شكله: 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 0 + 2 + 1 = 11 أي أن العدد 13 العشري يساوي 11 ثنائياً. ولحساب قيمة أي عدد ثنائي، نقوم بضرب كل رقم في القاعدة 2 حسب مرتبته ثم جمع الناتج. أما الأعداد السالبة فيتم تمثيلها بنظام التكملة 2. بمعنى أننا نقوم بتحويل كل رقم 1 إلى 0 والعكس ثم إضافة 1 إلى الناتج. مثلا العدد -5 سيكون: 1's complement = 0111 2's complement = 1000 وهكذا لباقي الأعداد السالبة. للأعداد الثنائية العديد من التطبيقات الهامة في مجال الحوسبة، حيث تمثل أساس عمل الحاسوب وتخزين البيانات فيه. فجميع البيانات من صور ونصوص وأرقام تخزن داخل الذاكرة على هيئة سلاسل من الرقمين 0 و1. كما يتم تنفيذ جميع العمليات الحسابية مثل الجمع والطرح والضرب والقسمة على مستوى الأعداد الثنائية داخل وحدة المعالجة المركزية CPU. حيث تتضمن وحدة الحساب والمنطق ALU دوائر إلكترونية تنفذ هذه العمليات باستخدام التمثيل الثنائي للبيانات. كما أن لغات البرمجة الرئيسية مثل C وجافا وبايثون تعتمد أيضا على التمثيل الثنائي للبيانات داخل الحاسب. حيث تقوم بترجمة التعليمات البرمجية إلى لغة الآلة بناءً على هذا التمثيل قبل تنفيذها. ومن التطبيقات الأخرى للأعداد الثنائية في مجال الإلكترونيات والاتصالات، حيث يتم استخدامها لتمثيل الإشارات الكهربائية والبيانات المرسلة عبر الأسلاك والأقمار الصناعية. ونعم ستجد في كورسات الاكاديميه شرح للbinary numbers وال bit operators
-
توجد اكثر من علاقه يمكن ان توجد بين الكلاسات. الوراثة (Inheritance): يمكن لكلاس أن يورث خصائص وسلوكيات من كلاس آخر (الكلاس الأساس). class Animal { public void eat() { System.out.println("Eating..."); } } class Dog extends Animal { public void bark() { System.out.println("Bark!"); } } Dog dog = new Dog(); dog.eat(); // inherited from Animal dog.bark(); التركيب (Composition): عندما يحتوي كلاس على عضو من آخر. مثل كلاس سيارة يحتوي على كلاس محرك. class Engine { public void start() {...} } class Car { private Engine engine; public void drive() { engine.start(); // use engine } } الاتحاد (Aggregation): نفس معنى التركيب ولكن العلاقة أضعف. مثل سيارة ومالكها. class Car {...} class Person { private Car car; public void buyCar(Car c) { car = c; } } الارتباط (Association): عندما تتعامل كائنات مع بعضها البعض دون تعديل بنيتها الداخلية. مثل طالب ومعلم. class Student { private Teacher teacher; public void learn() { teacher.teach(); } } class Teacher { public void teach() {...} }
- 2 اجابة
-
- 1
-
هناك طرق محتملة للرجوع للتوثيق: قراءة الملفات التوثيقية المرفقة مع المكتبة/اللغة (مثل ملف readme أو docs). البحث في موقع المكتبة/اللغة أو مواقع توثيقها على الإنترنت. البحث في مصادر خارجية للتوثيق مثل موقع cppreference لسي++. تجربة استخدام escape characters أخرى لمعرفة سلوكها. اختبار مختلف الخيارات ضمن المكتبة/اللغة بهدف التعرف على سلوكها. ولكن اخي نصيحه تابع الدروس ولا تجعل هذه النقطه توقفك او تعطلك او يمكنك تحميل كوبيلر اخر.
- 4 اجابة
-
- 1
-
الفئة row تقوم بتعيين الشكل الشبكي (grid) للعناصر المتضمنة في ال div الأب. بحيث يتم: - تقسيم الفضاء المتاح على 12 عمودا. - يتم تعيين col-xs-* على الأبناء لتحديد عدد الأعمدة التي سيشغلها كل عنصر. في div أب مع row div ابن col-6 يأخذ 6 أعمدة div آخر col-6 يأخذ الستة المتبقية هذا يحقق تجميع العناصر بطريقة متساوية داخل ال row. بدون row ستقع العناصر تحت بعضها البعض. فنحن هنا قسمنا ال div الكبير ل 12 عمودا ثم قسمنا تحت اتنين div ابناء كل واحد يأخذ 6 عمودا ثم كل div ابن يقسم تحته اتنين (واحد label وواحد input ) ال label يأخذ 2 عمود و ال input يأخذ 10 اعمده
-
حسنا اخي انا اشتغلت ع الكود الخاص بك وكانوا موجودين داخل div به كلاس row يمكنك وضعهم داخل div مثل الكود التالي: <div class="row"> <div class="col-6 row"> <label for="fname" class="col-sm-2 col-form-label">اسم الموظف :</label> <div class="col-sm-10"> <input type="text" id="fname" name="fname" class="form-control"><br><br> </div> </div> <div class="col-6 row"> <label for="fname" class="col-sm-2 col-form-label">اسم الاب:</label> <div class="col-sm-10"> <input type="text" id="fname" name="fname" class="form-control"><br><br> </div> </div> </div>
-
حسنا اخي هذا هو الكود بعد التعديل <div class="col-6 row"> <label for="fname" class="col-sm-2 col-form-label">اسم الموظف :</label> <div class="col-sm-10"> <input type="text" id="fname" name="fname" class="form-control"><br><br> </div> </div> <div class="col-6 row"> <label for="fname" class="col-sm-2 col-form-label">اسم الاب:</label> <div class="col-sm-10"> <input type="text" id="fname" name="fname" class="form-control"><br><br> </div> </div> ملاحظه: لا يجب ان يكون عنصرين في نفس الصفحه لهما نفس قيمه ال id