-
المساهمات
2852 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
38
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Hassan Hedr
-
المشكلة لديك هي في عدم عرض المهام المخزنة سابقًا عند عرض الصفحة في البداية، لذا يجب عليك جلب تلك المهام المخزنة مسبقا وعرضها فور تحميل الصفحة، يمكن حل المشكلة عبر كتابة تابع يقوم باستخراج المهام المخزنة والمرور عليها وإضافتها للصفحة بشكل مشابه لتابع إضافة المهمة لكن بدون عملية التخزين، وتنفيذه فورًا كالتالي: function init() { // جلب المهام المخزنة سابقًا const tasks = Object.values({ ...localStorage }); // عرض كل مهمة من المهام for (const task of tasks) { var div = document.createElement("div"), div2 = document.createElement("div"), div1 = document.createElement("div"), p = document.createElement("span"), x2 = document.createElement("span"); container.appendChild(div).appendChild(div1); div.classList.add("content"); div.appendChild(div2); p.innerText = task; p.classList.add("task"); div1.appendChild(p); x2.innerText = "✕"; x2.classList.add("x"); div2.appendChild(x2); } } // تنفيذ تابع عرض المهام المخزنة init() (يرجى عند إرفاق سؤالك في المرات القادمة إرفاق الشيفرة في كل من صفحة HTML و جافاسكريبت ضمن نص السؤال)
-
يمكن تطبيقها بالطريقة المذكورة وذلك عبر توليد رابط عشوائي من الخيارات المتاحة (اسماء ملفات العرض) عند إنشاء صفحة الزر وتحديد الرابط المختار كل مرة كرابط للزر نفسه وتصيير النموذج الحالي ضمن ملف العرض الرئيسي كالتالي: <?php // HTTP/Controllers/FormsController.php public function index($view) { $forms = [...]; // أسماء النماذج المتاحة $next_form_name = $forms[array_rand($forms)]; // اختيار نموذج عشوائي $current_form = view($view); // النموذج الحالي // نمرر النموذج الحالي واسم النموذج التالي return view('forms.blad.php', compact('current_form', 'next_form_name')); } ملف العرض الرئيسي <?php // forms.blad.php // رابط للنموذج التالي <a href='/form/{{ $next_form_name }}'> ... </a> // تصيير النموذج الحالي {{ $current_form }}
- 3 اجابة
-
- 1
-
-
يمكنك التواصل مع مركز الدعم وطرح استفساراتك وسيرشدوك ويشرحوا لك كل التفاصيل التي تحتاجها بهذا الشأن
-
تم دمج بعض المسارات والدروس من دورة تطبيقات الجوال باستخدام تقنيات الويب ضمن دورة تطوير التطبيقات باستخدام جافاسكريبت، وإلغاء مساراتها الباقية، إذا كنت تواجه مشاكل ما أو تحتاج لتفاصيل أكثر يمكنك التواصل مع مركز الدعم وشرح استفسارك وسيقوموا بمساعدتك
-
يمكنك تمرير خاصية ما إلى المكون عبر أولًا تعيينها كخاصية ضمن الصنف ثم الإشارة إليها من التابع mount كالتالي: <?php class AdminEditCouponComponent extends Component { public $coupon_id; ... public function mount(){ $coupon = Coupon::find($this->coupon_id); ... ^^^^^^^^^^^^^^^^ } } ثم عند استخدام المكون ضمن ملفات العرض view يجب تمرير ذلك التابع للمكون كالتالي <livewire:admin-edit-coupon-component :coupon_id="123"> ^^^^^^^^^^^^^^^^ // أو من متغير <livewire:admin-edit-coupon-component :coupon_id="$coupon_id"> ^^^^^^^^^^
- 1 جواب
-
- 1
-
-
يمكنك أولا تحويل النص إلى كائن من النوع DateTime باستخدام التابع createFromFormat بالتنسيق الصحيح كالتالي: <?php $dateFromFile = '3-14-2022'; // بدل القيمة بالقيمة من الملف $date = DateTime::createFromFormat('m-d-Y',$dateFromFile); الآن يمكن طباعة التاريخ بالتنسيق المطلوب باستخدام التابع format كالتالي: <?php //... echo $date->format('Y-m-d'); // 2022-3-14
-
سابقًا كنت تقوم بإنشاء عنصر لوضع المهمة الجديدة ضمنه، وعند إضافة مهمة ثانية تقوم فقط بتعديل محتوى العنصر للمهمة السابقة وهذا خطأ، الصحيح في حالتك أن تقوم بإنشاء عناصر جديدة كليًا لكل مهمة جديدة وإضافتها لأسفل قائمة المهام بعد تعديل محتواها ليتضمن المهمة الجديدة
- 3 اجابة
-
- 1
-
-
قيمة جسم الطلب المرسل إلى addProduct هي فقط نص الصورة على شكل base64، يجب إرسال باقي البيانات مع أسماءها الصحيحة ضمن الطلب بطرف العميل ووضع قيمة الصورة ضمن proImg ليتم استخراجها بشكل صحيح كالتالي: $.ajax({ type: 'POST', url: `${serverAddress}/product/add`, ... data: { proName: ..., proQuantity: ..., ... proImg: imageBase64 }, })
- 5 اجابة
-
- 1
-
-
قم بعمل log لقيمة imageBase64 قبل إرسال الطلب وتأكد أنها معرفة بشكل صحيح كالتالي: reader.readAsDataURL(img); console.log(imageBase64); $.ajax({ type: 'POST', ... أيضًا تأكد من طريقة استدعائك للتابع write وأنك تقوم باستخراج جسم الطلب الوراد وتمريره بشكل صحيح إليه كمعامل أول، يرجى إرفاق كيفية الاستدعاء في حال لم تستطع حل المشكلة
-
يجب نقل عملية إنشاء العناصر الجديدة الخاصة بسطر المهمة لداخل معالج حدث الإضافة ضمن التابع tasks حتى يتم إضافة سطر جديد في كل مرة، يمكن حل المشكلة بالتعديل إلى التالي: var input1 = document.querySelector(".input1"), text1 = document.querySelector(".p1"), btn = document.querySelector(".btn1"), input2 = document.querySelectorAll(".input2"), container = document.getElementById("container1"), content = document.querySelector(".content") function tasks(value) { if (value.length < 1) { alert("Please enter a valid task"); } else { // إنشاء عناصر جديدة للمهمة var div = document.createElement("div"), div2 = document.createElement("div"), div1 = document.createElement("div"), p = document.createElement("span"), x2 = document.createElement("span") ... } }
-
يوجد خطأ في استخدام التابع write حيث يتم تمرير له قيمة base64String غير معرفة، السبب ضمن طرف العميل عليك تخزين الناتج من التحويل ضمن متغير ثم تمريره مع الطلب وليس تمرير reader مباشرة، يمكن حل المشكلة بتعديل الشيفرة كالتالي: let imageBase64 = null; var reader = new FileReader(); reader.onloadend = function() { imageBase64 = reader.result.split(',')[1]; ^^^^^^^^^^^^^ } //... $.ajax({ ... data: imageBase64, ... ^^^^^^^^^^^ }) })
- 5 اجابة
-
- 1
-
-
الخاصية float تستخدم لتحديد تعويم العنصر إلى أحد جانبي العنصر اللاحق له، كأن يتم تعويم عنصر صورة إلى جانب نص على اليمين أو اليسار، تأخذ القيم none - right - left الخاصية clear تستخدم لمنع تعويم العناصر الأخرى على جوانب العنصر الحالي، ويمكن أن تأخذ القيم right - left - none أو both لمنع تعويم العناصر على كلا جانبي العنصر الحالي يمكنك الاستفادة من قراءة المقالات التالية:
-
المعرف id: يميز عنصرًا ما ضمن المستند دون غيره، أي يجب أن يكون كل id مميزًا ضمن المستند، يستخدم عند وجود عنصر ما ضمن المستند فريد وتحتاج للدلالة عليه لاحقًا، كأن تتعامل معه عن طريق DOM في جافاسكريبت، أو لإنشاء رابط URL مباشر له ضمن الصفحة بحيث ينتقل المستخدم مباشرة إلى ذلك العنصر دون الحاجة للبحث عنه الصنف class: يحدد فئة من العناصر ضمن المستند تشترك بصفة دلالية ما، يمكن أن يصنف أكثر من عنصر بنفس الصنف class ضمن نفس المستند، يستخدم عند الحاجة للتعامل مع العناصر بواسطة DOM في جافاسكريبت، وأشيع استخدام للتصنيفات هو لإضافة التنسيقات للعناصر المتماثلة دلاليًا ضمن CSS استخدم id عندما يكون العنصر مميزًا ضمن الصفحة، استخدم class عند وجود أكثر من عنصر يحملون الصفة الدلالية نفسها
-
يمكنك إضافة التالي إلى العنصر الجذر لكل صفحات HTML ضمن المشروع (ملفات قوالب blade) وذلك لإدراج الخاصية dir بشكل عام من الموقع وهي ما تحدد اتجاه التنسيقات والتموضع للعناصر لتكون من اليمين لليسار أو العكس بحسب اللغة الحالية: <html dir="{{ App::isLocale('ar') ? 'rtl' : 'ltr'}}"> ... </html>
- 2 اجابة
-
- 1
-
-
في حال كنت مشتركًا بإحدى الدورات ضمن الأكاديمية والاستفسار متعلق بالتمارين ضمن الدروس يمكنك وضع استفسارك ضمن التعليقات في أسفل فيديو الدرس وسيقوم المدربون بالإجابة على استفسارك والتوضيح لك، أما في حال كان السؤال من الخارج يرجى إرفاق الشيفرة بشكل نصي ضمن السؤال وتنسيقه بتنسيق Code ليتمكن الزوار من الإجابة على استفسارك
-
عند تسجيلك ضمن أي من الدورات المتاحة ضمن الأكاديمة ستحصل على الوصول لكافة المسارات لتلك الدورة مدى الحياة وأيضًا ستحصل على الوصول للمسار الأول فقط من كل دورة متوفرة أخرى، وذلك في حال أحببت الاطلاع على محتوى تلك الدورات والتسجيل بها لاحقًا
- 1 جواب
-
- 2
-
-
أولا يجب كتابة الصنف الأساسي وتعيين تابع ساكن ضمنه بالاسم main يكون مدخلا للبرنامج يبدأ التنفيذ منه كالتالي: public class Main { public static void main(String[] args) { // استدعاءات البرنامج } } بعد ذلك يجب إنشاء باقي الأصناف واستدعاءها ضمن main بشكلها المناسب وتركيبها للقيام بالمطلوب وذلك يتبع متطلبات المشروع، مثال بسيط : public class Main { public static void main(String[] args) { Calculator calc = new Calculator(); System.out.println(calc.add(5,5)); // 10 } } (ملاحظة: لا يمكن طلب حل الواجبات، حاولي كتابة المشروع بنفسك ويمكنك طرح مشاكلك او استفساراتك كأسئلة مع إرفاق الشيفرة المتعلقة بالمشكلة وسيتم مساعدتك بها) يمكنك الاستفادة من قراءة المقالات التالية:
-
يمكنك الاستعانة بالتابع المساعد trans لاستخراج القيمة النصية بترجمتها المناسبة بحسب اللغة الحالية للتطبيق أو المستخدم كالتالي: session()->flash('message_key', trans('value of the message'));
- 2 اجابة
-
- 1
-
-
من غير الضروري قياس سرعة انجازك بعدد الدروس، بل بعدد المفاهيم التي قمت بتعلمها واتقانها ولو قليلًا، في حال كنت تواجه صعوبة حاول التروي وتخفيض العدد والاعتماد على التطبيق العملي
-
ركز على الأساسيات ولا تنتقل إلى فكرة جديدة دون فهم جيد للفكرة السابقة وحاول تطبيق كل فكرة جديدة ضمن عدة أمثلة لتتمكن منها ومن استخداماتها، قسم أي مثال إلى خطوات بسيطة قابلة للتطبيق وحاول كتابتها بنفسك وابحث عن كل ما تستخدمه ضمن اللغة من معاملات وطرق وتوابع وأقرأ عنها جيدًا وطبقها بنفسك حين تشعر أنك مشتت حاول الرجوع لما سبق وتأكد من فهمه جيدًا فعملية التعلم وخصوصًا الأساسيات هي ضرورية ويبنى عليها الأفكار اللاحقة، يمكنك الاستفادة من قراءة المقال التالي:
- 4 اجابة
-
- 1
-
-
يمكنك تحديد الحد الأقصى للملف المرفوع كما تشاء باستخدام max كالتالي $validator = Validator::make($request->all(), [ 'file' => 'max:1024', // 1MB أقصى حجم ]); أو أقصى حجم أن يكون 500 كيلوبايت كالتالي $validator = Validator::make($request->all(), [ 'file' => 'max:500', // 500KB أقصى حجم ]);
- 2 اجابة
-
- 1
-
-
عملية تسجيل الدخول تلزم بعض التعديلات ضمن مشروعك للتكامل معها من حيث التعرف على المستخدم وتسجيل بيانات الجلسة أو بيانات المستخدم الحالي والاستيثاق من العمليات التي يحاول القيام بها، هناك عدة خيارات: استخدام نظام إدارة محتوى كووردبرس، حيث يوفر نظام إدارة للمستخدمين متكامل ولا حاجة لأي تعديلات يمكنك التكامل مع مزودات استيثاق و تسجيل دخول أخرى (مثل جوجل و فيسبوك) وذلك لتسهيل عملية تسجيل المستخدمين الجدد أو الحاليين، لكن ذلك يتطلب إعداد ضمن مشروعك للتكامل مع نظام OAuth الخاص بتلك المزودات، يمكنك الاستفادة من قراءة المقالات التالية:
-
بحسب طبيعة المسؤوليات التي ستشملها وظيفتك، في حال كانت الوظيفة كمطور واجهات أمامية فقط فمن غير الشائع ضمن المتطلبات فهم للبرمجة كائنية التوجه، ركز على مهاراتك وما تستطيع انتاجه وجودة الواجهات التي تستطيع بناءها وستتجاوز تلك المقابلات
- 3 اجابة
-
- 1
-
-
بحسب طبيعة المشروع أو ما يطلبه مدير ذلك المشروع، لكن في الغالب تطوير الواجهات الأمامية لا يعتمد على بناء نماذج باستخدام البرمجة كائنية التوجه، يعتمد أكثر على مدى خبرتك باستخدام لغات HTML و CSS و جافاسكريبت وإطار العمل المستخدم ضمن المشروع، ويطلب أيضًا الخبرة أحيانا ببعض المفاهيم الأخرى كبروتوكول HTTP و AJAX أو PWA ركز على تعلم الأساسيات وتلك اللغات، يمكنك الاستفادة من قراءة المقالات التالية: