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

محمد أبو عواد

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

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

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

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

    95

كل منشورات العضو محمد أبو عواد

  1. يمكنك اعطاء المتغير c قيمة افتراضية ولتكن 0 كالتالي const test = (a, b, c = 0) => { return a + b + c } دائما احرص على كتابة البارميترات التي لها قيم افتراضية مكتوبة في آخر الباراميترات لكي لا يحدث مشاكل , عند استدعاء الدالة يكون بهذا الشكل const sum = test(5, 10) console.log(sum)
  2. يختلف الأمر من عميل لآخر , بعض العملاء يكون بالفعل قد اشترى دومين واستضافة ويطلب منك كود المشروع فقط دون رفعه على الاستضافة , بعضهم يطلب منك رفعه أيضا , هناك بعض العملاء يطلبون منك شراء الدومين والاستضافة ورفع المشروع عليها, يجب أن تكون واضح تماما معهم , تخبرهم بكل شيء مثل سعر الدومين والاستضافة , سعرهم يكون خارج اطار اجرك, يجب أن يكون الاتفاق واضحا بينكما بحيث لا يحدث أي مشكلة , هناك عملاء لا يعلمون ماذا يعني دومين واستضافة وأنت يجب أن توضح لهم كل شيء وتخبرهم بجميع هذه التفاصيل , أي خدمات تحتاج لشرائها خلال بناء المشروع يجب أن يكون العميل هو مسؤول عن سعرها , في النهاية , يجب أن تكون واضحا مع العميل بشكل كامل , وتخبره بجميع التفاصيل لكي لا يؤثر عليك الموضوع بشكل سلبي
  3. يوجد في بوتستراب المكون modal ,وهذا الكود الخاص به <!-- Button trigger modal --> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal"> Launch demo modal </button> <!-- Modal --> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Modal title</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> ... </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Save changes</button> </div> </div> </div> </div> تستطيع استبدال العنصر button بالعنصر a واستخدام الخاصية href وتكون قيمتها # , بهذا الشكل <a href="#" type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal"> ^^^^^^^^ Launch demo modal </a> <!-- Modal --> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Modal title</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> ... </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Save changes</button> </div> </div> </div> </div> تستطيع أن تستخدم اثنين من المكون modal وتتحكم في محتوى كل منهم كالتالي <a href="#" type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal1"> ^^^^^^^^ modal 1 </a> <a href="#" type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal2"> ^^^^^^^^ modal 2 </a> لدينا زرين , كل زر مرتبط ب modal معين باستخدام الخاصية data-target , الآن نقوم بإنشاء مكونين modal كل مكون لديه id بنفس اسم data-target الخاص بالزرين , الكود بشكل مختصر كالتالي <div class="modal fade" id="modal1" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria- ^^^^^^^^^^^ hidden="true"> <div class="modal fade" id="modal2" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria- ^^^^^^^^^^^ hidden="true"> لاحظ مكونين modal , الأول لديه معرف modal1 والثاني modal2 , عند الضغط على الزر الذي اسمه modal 1 سوف يظهر المكون modal المرتبط به , يمكنك عرض البيانات التي تريدها بداخل المكون modal وذلك بكتابة الكود بداخل جسم المكون modal كما هو واضح في الكود التالي <div class="modal fade" id="modal2" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Modal 2</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> يمكنك كتابة الأكواد التي تريدها هنا وتستخدم أي بيانات قمت بجلبها من المتحكم أو عمل فورم </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Save changes</button> </div> </div> </div> </div>
  4. تأكد بأنك تضع هذا السطر بداخل الملف GuestFactory use App\Models\Guest; وأيضا تأكد بأنك تكتب namespace الخاص بالموديل Guest بشكل صحيح كالتالي namespace App\Models; ثم جرب الأمر مرة أخرى, اذا لم ينجح الأمر أرجو منك ارفاق مجلد المشروع بشكل مضغوط بدون المجلد vendor
  5. لديك مشكلة في الفورم , لم تقم باضافة الخاصية name لأي حقل , كيف سوف نقوم باستقبال البيانات في الواجهة الخلفية اذا لم تضع الخاصية name , لاحظ <input class="form-control @error ('first_name') is-invalid @enderror " id="first_name" type="text" value="{{ old('first_name') }}" placeholder="{{__('radix.Enter your first name')}}" required autocomplete="first_name" /> لا يوجد خاصية name , أرجو منك اضافتها كالتالي لكل حقل <input class="form-control @error ('first_name') is-invalid @enderror " id="first_name" type="text" value="{{ old('first_name') }}" placeholder="{{__('radix.Enter your first name')}}" required autocomplete="first_name" name="first_name" ^^^^^^^^^^^^^^^^^ /> قم باعطاء كل حقل الاسم الخاص به , لتتعامل مع لبيانات المرسلة في الواجهة الخلفية, ثم تأكد من الكود الخاص بالتحقق من البيانات في المتحكم الخاص بتسجيل عضو جديد في المسار التالي App\Http\Controllers\Auth\RegisterController; وجرب عملية التسجيل مرة أخرى
  6. استخدمنا for loop مرتين, المرة الأولى للقيام بادخال معلومات ثلاثة أشخاص وهذا الكود الخاص بهذا الجزء for(int i =0; i<3;i++){ cout << "Enter Student[" << i <<"] name : " ; cin >> student[i].name; cout << "Enter Student age : " ; cin >> student[i].age; cout << "Enter Student height : " ; cin >> student[i].height; cout << "Enter Student score : " ; cin >> student[i].score; } حلقة تكرار تتنفذ فقط 3 مرات , تتنفذ طالما قيمة المتغير i أقل من 3 , تبدأ وقمية i تساوي 0 , عندما تصبح قيمة i أكبر أو يساوي من 3 تتوقف حلقة التكرار الجزء الثاني الذي استخدم فيه for loop هو لطباعة بيانات الطلاب الثلاثة الذي تم ادخال بياناته مسبقا وهذا الكود الخاص بطباعة البيانات for (int i =0; i< 3; i++){ if(student[i].score >= 50){ cout << "Name = " << student[i].name << endl; cout << "age = " << student[i].age << endl; cout << "heiht = " << student[i].height << endl; cout << "score = " << student[i].score << endl; cout <<"============================================" <<endl; } طبعا بداخل كل حلقة يتم التأكد من درجة الطالب , اذا كانت اكبر أو يساوي 50 يتم طباعة البيانات , اذا كانت أقل لا يتم الطباعة استخدمنا cin لكي يتم قبول القيم المدخلة من قبل المستخدم واسنادها الى المتغيرات الخاصة بكل مستخدم
  7. تعتبر لغة c++ لغة عالية المستوى , تحتوي على الكثير من المكاتب والأطر المستخدمة والمدعومة في بناء الألعاب , حيث يتم استخدامها في بناء الكثير من ألعاب ووندوز , لديها عدة مميزات تجعل من السهل اختيارها لبناء الألعاب تعتبر لغة سريعة في عملية الترجمة تمكنك من التحكم في ادارة الذاكرة بشكل كبير تحتوي على مكتبات كثيرة وواسعة تساعدك في تصميم الرسومات المعقدة وتشغيلها لديها مجتمع كبير على الانترنت مما يسهل عليك ايجاد حلول للمشاكل التي من المحتمل أن تواجهك هناك أمثلة كثيرة على الألعاب التي تم تصميمها باستخدام لغة c++ مثل The Witcher 3 PlayerUnknown's Battlegrounds (PUBG) Fortnite يمكنك استخدامها وحدها في بناء الألعاب الخاصة بك ولن تحتاج الى لغات أخرى
  8. يمكنك تجربة أحد الطرق التالية لحل المشكلة أعادة تشغيل جهاز الكمبيوتر الخاص بك ثم اعادة تشغيل التطبيق قم بتشغيل التطبيق الخاص بك كمسؤول , يمكنك فعل ذلك من خلال الضغط بزر الماوس الأيمن على أيقونة التطبيق واختيار الأمر "تشغيل كمسؤول " أو "run as administrator" قم بحذف التطبيق وأعد تثبيت التطبيق مرة أخرى ربما لم يتم تثبيته بشكل صحيح ربما تحتاج الى تحديث النظام الخاص بك , حاول تثبيت اصدار ووندوز 10 لأن برامج أدوبي تواجه صعوبة على ووندوز 7
  9. لا تحتاج الى ترخيص , بل تحتاج الى ما يسمى استضافة ودومين , فكما تعلم مواقع الانترنت ما هي الا عبارة عن رابط تستطيع زيارته فيعرض لك الموقع , يمكنك شراءهما من أي موقع يوفر هذه الخدمات , قبل شراءهما ادرس الأمر جيدا لكي لا تقع في مشاكل في المستقبل مثل نوع الاستضافة والمميزات التي توفرها لك ,الاستضافة تعتبر مساحة تستطيع وضع ملفات ومحتويات الموقع فيها , وتحتاج الى الدومين أو الرابط الذي يستطيع المستخدمين الوصول الى الموقع من خلاله , ثم تحتاج أن تربط الدومين بالاستضافة , يمكنك قراءة المزيد عن الموضوع من خلال الرابط التالي ويمكنك البحث عن استضافة الويب أو Web Hosting
  10. بداية نحتاج الى متغير ليحمل قيمة الجمع وليكن اسمه sum وقيمته الأولية هي 0 , ثم سوف نقوم بعمل حلقة تكرار باستخدام for ويكون قيمة i تساوي 2 وتنتهي عندما i أكبر من 100 , وفي كل دورة تزداد قيمة i بمقدار 2 لكي نضمن أن الرقم زوجي , وفي كل دورة نقوم باضافة الرقم لقيمة المتغير sum يكون شكل الكود كالتالي public static void Main() { int sum=0;// المتغير الذي نخزن فيه قيمة الجمع for (int i = 2; i <= 100; i += 2) //حلقة تكرارية تبدأ من 2 وتنتهي عندما i أكبر من 100 وكل دورة تزداد بمقدار 2 { sum += i; // نضيف قيمة i في كل دورة الى قيمة المتغير sum } Console.Write(sum); // طباعة قيمة المتغير sum }
  11. يمكنك بدلا من استخدام طريقة حافاسكربت التي أشار اليها أسامة أن تستخدم jquery وهي أبسط بكثير من استخدام طريقة جافاسكربت التي أشار اليها أسامة, بالاعتماد على كود html وcss الذي أرفقه أسامة يمكن فعل ذلك باستخدام jquery كالتالي $(".nav__link").click(function () { $(".nav__link").removeClass("active"); $(this).addClass("active"); }); شرح الكود : قمنا بتحديد العناصر التي لديها الصنف nav__link ثم أضفنا اليها حدث click , اي عند الضغط على أي عنصر لديه الصنف nav__link سوف يتم حذف الصنف active من جميع العناصر التي لديها الصنف nav__link , ثم سوف نضيف الصنف active فقط للعنصر الذي ضغطنا عليه
  12. البرمجة لا تحتاج الى المذاكرة التي اعتدنا عليها في المدارس أو في المواد العادية , فهي لا تحتاج الى تلخيص الدروس أو كتابة الأكواد والأوامر على دفتر , تحتاج الى مذاكرة بطريقة أخرى وهي التطبيق المباشر للأكواد , يمكنك أن تحضر الدرس بشكل كامل , ومن ثم تطبيقه بنفسك , ثم قارن التطبيق الخاص بك بتطبيق المدرس , بهذه الطريقة يمكنك تذكر الأكواد , الأخطاء التي سوف تواجهها أول مرة لتطبيقك الأكواد سوف تكسبك الخبرة والمعرفة الجيدة , والجدير بالذكر أنه من الطبيعي في بداية الدورة أن نواجه مشكلة النسيان , لأن ما نتعلمه جديد ويصعب علينا تذكره بسرعة , يحتاج كما قلت في البداية الى التطبيق والممارسة , ولا تعتمد على تلخيص الدرس , الدرس موجود وتستطيع الرجوع اليه في أي وقت لذلك لا حاجة لتلخيصه , حاول القيام ببعض التمارين عن التقنيات التي تتعلمها وحاول حلها فذلك يكسبك الخبرة أيضا
  13. سوف يتم شرح أساسيات لغة جافاسكربت مثل المتغيرات والمعاملات وطباعة البيانات وجمل التحكم وحلقات التكرار وغيرها من المواضيع المهمة وأيضا سوف يتم شرح شجرة دوم -DOM- وكيفية الوصول لعناصر HTML , وأساسيات JQUERY أيضا , كل هذه الأشياء كافية للتعامل مع تصميم صفحات الانترنت ولن تحتاج لدورات خارجية , ولكن تحتاج للممارسة وتطبيق ما تعلمته في تصميم الصفحات , وأيضا ال 17 درس ليس هي وحدها , سوف يتم شرح المزيد خلال المسارات الأخرى من نفس الدورة وسوف يتم التعرف على الكثير من المكتبات والتقنيات أثناء الدورة مما يجعلك مؤهلا بشكل كافي لتصميم مواقع الانترنت ولكن ما تحتاجه هو الممارسة لاكتساب الخبرة
  14. عندما تقوم باختيار صورة فهو لن يتعامل معها كصورة بل سوف يتعامل معها كملف , وبشكل منطقي لا يمكننا أن نحسب الارتفاع والعرض لملف ما , نريد أن نقوم بتعريف البرنامج أن ما قمنا برفعه بالفعل هو صورة , وذلك عن طريق انشاء كائن جديد من Image , ثم نستخدم الدالة onload بمجرد أن تقوم الصورة بالتحميل يحسب الارتفاع والعرض الخاص بها , فيكون شكل الكود كالتالي var _URL = window.URL || window.webkitURL; var img, width, height; img = new Image(); img.onload = function () { width = this.width height = this.height // التحقق من ابعاد الصورة if (height > 200 || width > 200) { alert('Dimention is too Large '); $(".img-validate").val(''); return false; } }; img.src = _URL.createObjectURL(file); قمت بتعريف متغيرات img لتخزين كائن image بداخله , ومتغيرات الطول والعرض لتخزين الطول والعرض , ثم بعد تحميل الصورة سيقوم الكود بتخزين طول وعرض الصورة في المتغيرات الخاصة بها , ثم سوف يتم فحص أبعاد الصورة , بهذه الطريقة يمكن فحص طول وعرض الصورة , شكل الكود بشكل كامل <script> $(document).ready(function () { $("#img-validate").change(function () { var allowedTypes = ['image/jpeg', 'image/gif', 'image/png']; var file = this.files[0]; var _URL = window.URL || window.webkitURL; var img, width, height; img = new Image(); img.onload = function () { width = this.width height = this.height // التحقق من ابعاد الصورة if (height > 200 || width > 200) { alert('Dimention is too Large '); $(".img-validate").val(''); return false; } }; img.src = _URL.createObjectURL(file); var MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB var fileSize = this.files[0].size; // التحقق من الملف من خلال صيغ if (!file.name.endsWith('.jpg') && !file.name.endsWith('.jpeg') && !file .name.endsWith('.png') && !file.name.endsWith('.gif')) { alert('Restricted File Type, Please Select only image files'); $(".img-validate").val(''); return false; } // التحقق من حجم الملف else if (fileSize > MAX_FILE_SIZE) { alert('الحد الاقصى للصورة 5 ميجابايت'); $(".img-validate").val(''); } else { this.setCustomValidity(""); } }); }); </script>
  15. لحل هذه المشكلة تستيطع التواصل مع مركز المساعدة الخاص بأكاديمية حسوب , يمكنك الذهاب اليه من هنا والتواصل معهم وطرح مشكلتكك عليهم وسوف يساعدونك في أقرب وقت , ولكن قبل اخذ قرار الانتقال الى دورة علوم الحاسوب تحتاج الى معرفة محتوى الدورة لكي تكون على معرفة بالمواضيع التي سوف تتعلمها فيها ,الدورة تحتوي على 8 مسارات وكل مسار يتناول بعض الموضوعات وهي كالتالي مسار مدخل إلى علوم الحاسوب وسوف يتناول موضوع تعلم سكراتش والتعرف على مكونات الحاسوب وتعلم التفكير المنطقي مسار أساسيات البرمجة , سوف يتم تعلم أساسيات البرمجة من خلال لغة جافاسكربت مسار أنظمة التشغيل ونظام لينكس , من خلال هذا المسار سوف نتعلم كيفية التعامل مع الأنظمة وكيف تعمل هذه الأنظمة مسار قواعد البيانات الذي سوف نتعلم من خلاله ما هي قواعد البيانات ونتعرف على أنواعها وكيفية التعامل معها مسار عالم الويب الذي سوف نتعلم من خلاله كيف يتم عمل صفحات الويب وما هي التقنيات المستخدمة في ذلك وما هي الخوادم وغيرها من الأمور التي تتعلق بالويب , ربما هذا المسار المتعلق بدورة تطوير واجهات المستخدم مسار البرمجة كائنية التوجه الذي سوف نتعلم من خلاله ما هي البرمجة كائنية التوجه من خلال استخدام لغة بايثون مسار الخوارزميات , من خلاله سوف نتعلم كيف نقوم بعمل خوارزميات لحل المشاكل مسار أنماط التصميم وأنواعها الجدير بالذكر أيضا أنك اذا كنت جديد في مجال البرمجة بشكل عام فبالتأكيد سوف تواجه الكثير من الصعوبات في فهم المصطلحات والمفاهيم الجديدة وهذا شيء طبيعي
  16. يمكنك استخدام برنامج Visual Studio Code مع تنزيل بعض الاضافات اليه , هناك اضافة Error Lens تكشف لك الأخطاء وتنبهك بوجود خطأ في هذا السطر ولكن لا تصلح بشكل تلقائي, فمثلا اذا نسيت الفاصلة المنقوطة في نهاية الجملة تنبهك أنه يوجد خطأ في هذا السطر , هذه صورة للاضافة أما بالنسبة للسيرفر فيمكنك استخدام اضافة live server , وهذا هو شكلها
  17. هناك شيء يجب معرفته عن grid system الخاص ببوتستراب , وهو أن grid system تم بناءه باستخدام الخاصية flex , فتجد أن الصنف row لديه الخصائص التالية row{ display: flex; flex-wrap: wrap; margin-right: -15px; margin-left: -15px; } كما تلاحظ أنه يعتمد تماما على خاصية flex , ثم بداخل الصنف row تستخدم أحد أصناف col , على فرض استخدمت الصنف col-sm فتنسيقاته كالتالي .col-sm { flex-basis: 0; flex-grow: 1; max-width: 100%; } أي أنها تعتمد على تنسيقات الخاصية flex , هذا بالنسبة لنظام grid system الخاص ببوتستراب , أما بالنسبة للعيوب , لا يوجد أي عيوب تقريبا غير أن امكانياتها محدودة , فعلى سبيل المثال الهوامش الداخلية -Padding- و الهوامش الخارجية -margin- محدودة فهي تبدأ من 0 وتنتهي عند 5 , اذا أردت أكثر فيجب عليك أن تكتب ذلك بنفسك في ملف التنسيقات وتحدد قيمة الهامش بنفسك , أما من جانب مميزاته فهو يوفر عليك الكثير من خلال استخدام الأصناف الجاهزة والمكونات الجاهزة
  18. لم أقم بتعديل الكود ليعمل بناء على المنطق, بل فقط عدلته من الأخطاء التي كانت سوف تواجهك وتمنعه من العمل, هي يمكنك شرح السؤال جيدا وبشكل واضح ومفهوم لنساعدك في حل مشكلته؟
  19. المشكلة الظاهرة لديك هي مشكلة في ترتيب الاكواد , المشكلة في السطر السابع , لديك في السطر السادس جملة for loop وبالتالي يجب أن تكون الجمل التي تليها تابعة لها , فينبغي أن يكون شكل الكود كالتالي for x in range ( 1, n+1 ) : vol=float(input("Enter volume of shaper "+str(x)+":")) ^^^^^^^^ يوجد مسافة قبل المتغير vol , هذا يعني أن الجملة vol تابعة لحلقة التكرار for , لديك مشكلة أخرى في نفس السطر السابع وهو طريقة طباعة الجملة , لاحظي vol=float(input("Enter volume of shaper"),x,":") يوجد خطأ , سوف ندخل المتغير x والنقطتان بداخل الأقواس الخاصة ب input وسوف نغير الفاصلة الى + لكي نربط بينهم , والربط يحدث مع النصوص فقط لذلك سوف نغير المتغير x ليكون نص وليس رقم فيصبح شكل الكود كالتالي vol=float(input("Enter volume of shaper "+str(x)+":")) لديك مشكلة أخرى في السطر الثامن في المتغير v , لا يوجد هناك متغير اسمه v بل يوجد vol لذلك أرجو تغييره كالتالي r=( vol * (3 / 4) / pi ) ** 1/3 ^^^^ سوف أرف لك صورة للكود بعد التعديلات كاملة واحرصي على أن يكون بنفس الشكل لأن بايثون تهتم كثيرا بمكان كل جملة وبدايتها يتبقى فقط تنفيذ المنطق الخاص بالسؤال , حاولي فعل ذلك
  20. برنامج vs code يختلف تماما عن github وكل منهما له وظيفة مختلفة تماما عن الآخر ولا يوجد أي وجه مقارنة بينها , فبرنامج vs code برنامج محرر نصوص , نكتب فيه الأكواد ونستعرض من خلاله ملفات html وcss وغيرها الكثير من الملفات , بينما github هو موقع نستطيع من خلاله انشاء مستودعات لنحفظ فيها مشاريعنا , فربما يتعطل القرص الصلب , أو يضيع الكود والملفات الخاصة بمشروع ما , فنقوم بحفظه على حسابنا في github ولديه العديد من المميزات الأخرى , لا يوجد أي مقارنة بينهما ولا يغني أحدهما عن الآخر, اذا كان مقصدك شيء آخر أرجو منك توضيحه أكثر
  21. في حالتك يمكننا وضعك العناصر في المنتصف بسهولة عن طريق استخدام الخاصية text-align ونحدد قيمتها في المنتصف كالتالي nav{ text-align: center; } الخاصية سوف تعرض النص في منتصف العنصر , أما بالنسبة للعناصر a الموجودة بداخل العنصر nav فيمكننا فعل ذلك باستخدام الخاصية margin من جهة اليمين أو اليسار وتحديد القيمة المناسبة , فمثلا nav a{ margin-left: 20px; } أضفت هامش خارجي من جهة اليسار فقط بمقدار 20 بكسل ويمكنك التحكم بمقدار التباعد بينهم بتغيير الرقم
  22. يعتمد ذلك على الكود الذي قمتي ببناء الصفحة من خلاله , بشكل عام يمكنك التحكم في المسافات عن طريق خاصية margin و padding يمكنك ارفاق الكود لمساعدتك بشكل أفضل
  23. من الممنك أن تقوم باستخدام الخاصية data مع العنصر form , فمثلا أن يكون الاسم data-test كالتالي <form data-test="<?php echo $thread['thread_id'] ;?>" class="test" action="javascript:added(); return false;" novalidate> ثم في كود jquery $('.test').on('click', function (event) { var id=$(this).data('test'); }); في كود jquery استخدمت الكائن event الذي يمتلك معلومات عن العنصر الذي تم الضغط عليه , من المعلومات حصلت على قيمة الخاصية data-test , قيمة الخاصية data-test تحتوي على id الخاص ب thread الذي تم الضغط عليه , وبناء عليه يمكنك القيام بالعمليات المختلفة لعنصر واحد فقط , هناك طريقة أخرى , نقوم بعمل حدث على العنصر form اسمه onClick ونقوم بتمرير معاملات لهذا الحدث كالتالي <form onclick="testFunction('<?php echo $thread['thread_id'] ;?>')" class="test" action="javascript:added(); return false;" novalidate> في الحدث onClick يقوم بتنفيذ الدالة التي اسمه testFunction ومررت الى الدالة معامل واحد وهو معرف id الخاص ب thread , ثم في كود جافاسكربت يمكنك الحصول على المعرف id الذي مررته كالتالي function testFunction(id) { console.log(id) } سوف يتم طباعة المعرف الذي تمريره , يمكنك القيام بأي عملية تريدها
×
×
  • أضف...