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

بلال زيادة

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

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

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

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

    30

كل منشورات العضو بلال زيادة

  1. يجب عليك تحديث خاصية itemCount بعد إضافة الصورة حتى يتم تحديث عدد الصور الذي تريد إضهارها.
  2. لاحظ أنك تضيف صورة جديدة أيضا تأكد من تحديد طول قائمة البيانات. على سبيل المثال ، إذا كنت تستخدم ListView.builder ، فقم بإعطاء قيمة مناسبة للسمة itemCount.
  3. للأسف, لهذا الوقت لا توجد دورة على إكاديمية حسوب , ولكن يمكن البحث عن التوثيق الرسمي لهذه اللغة و تعلمها أو يمكنك اللجوء إلى موقع يوتيوب أو أي موقع من المواقع التي تقدم دورات مجانية ربما تجد شروحات لهذه اللغة بحيث سوف تتعلم و تفهم هذه اللغة .
  4. يمكنك استخدام حزمة Guzzle لإنشاء أي اتصال بأي api خارجي و ذلك عن طريق الكود التالي use GuzzleHttp\Client; $client = new Client(); $res = $client->request('POST', 'https://', [ 'form_params' => [ 'client_id' => 'test_id', 'secret' => 'test_secret', ] ]); بحيث يكون الطلب من نوع POST كما في الكود السابق, لاحظ بأنه في التوثيق التالي لهذه الحزمة يوجد شرح لكل نوع من أنواع الطلب من هنا , حاول استخدام هذه الحزمة ومن ثم أخبرني بالنتيجة.
  5. هل حاوت استخدام حزمة dio لكي تتمكن من رفع الصور بشكل سليم , فهي لديها تعامل رائع في رفع الصور Future<bool> uploadImage(filePath, String image) async { final url = Config.url + Config.uploadImage; String fileName = filePath.path.split("/").last; var data = FormData.fromMap({ "image": await MultipartFile.fromFile( filePath.path, filename: fileName, ), "email": email, }); Dio dio = new Dio(); var res = await dio.post(url, data: data, options: new Options(headers: { HttpHeaders.authorizationHeader: 'Bearer $token', HttpHeaders.contentTypeHeader: 'application/json' })); return res.statusCode == 200 ? true : false; } بحيث يمكنك تمرير مسار الصورة ليتم رفع الصورة إلى المسار المحدد في api و اسم الصورة إذا أردت حفظ اسم الصورة بداخل قاعدة البيانات.
  6. حلو جدا ، ايضا يمكنك السماح فقط لأربعة صور بالتخرين و الحفظ داخل قاعدة البيانات .
  7. لقد استعملت هذه الحزمة كثيرا و لم أجد ما تطلبه بها و لكن هناك حل ما و هو عندما يقوم المستخدم باختيار الصور , تقوم أنت فقط بعرض 4 صور من الصور المختارة و لا تعرض أكثر من ذلك حسب ما تريد.
  8. يمكنك تطبيق ما تتعمله مع المدرب و المتابعة مع المدرب بشكلٍ جيد و بحرص, التطبيق سيكون عملي بحيث ستقوم بتنزيل جميع البرامج التي يستعملها المدرب و من ثم تقوم بالتطبيق معه, أما بخصوص الواجبات فهذا الأمر يرجع لك بحيث بعد الأنتهاء من الدروس يمكنك المحاولة في كتابة الأكواد بنفسك و تطبيق ما تعلمته بشكلٍ فردي و تعمل على مقارنة الأخطاء و العمل على إصلاحها و حلها بنفسك .
  9. هناك عدة مشاكل و هي أولاً يجب إزالة = من السطر التالي for (let i = 0; i < cart.length; i++) { بحيث متغير i أصغر من عدد عناصر المصفوفة , ومن ثم يجب جمع عناصر المصفوفة , بحيث يجب إضافة اسم المصفوفة المخزنة بها الأعداد كما في السطر التالي total += cart[i]; فيكون كامل الكود هو const cart = [1,3,4,5,6]; let total = 0; for (let i = 0; i < cart.length; i++) { total += cart[i]; } console.log(total); والنتيجة سوف تكون عدد 19
  10. يمكنك استخدام دالة toUpperCase في جافاسكريبت بحيث تكون الأسماء لديك بهذا الشكل const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; ثم يمكنك إنشاء for loop بهذا الشكل , ليتم تحويل جميع الكلمات إلى UpperCase عن طريق الدالة toUpperCase for ( let i = 0; i < days.length; i++ ) { days[i] = days[i].toUpperCase(); console.log(days[i]); } فيكون كامل الكود كالتالي const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; for ( let i = 0; i < days.length; i++ ) { days[i] = days[i].toUpperCase(); console.log(days[i]); }
  11. الأن في الإجابة السابقة الخاصة بي , يقوم بالتحقق من أن المتغير يحمل بريد الكتروني أو لا , يعني اذا كان يوجد بريد الكتروني مطابق لما تبحث عنه سيقوم بارجاع البيانات هذا ما قصدته , ماذا تقصد انت .
  12. سوف تقوم بالتأكد من قيمة المتغير التالي $val[$mailTable] بحيث إذا يحتوي على قيمة ( بريد الكتروني ) قم بتنفيذ الاستعلام الذي تريده ، أما إذا كان فارغ ( لا يحتوي على بريد الكتروني ) يمكنك تنفيذ أو إظهار رسالة خطأ تفيد بأنه لا يوجد أي بريد الكتروني if($val[$mailTable]){ // تنفيذ الاستعلام } else { // إظهار رسالة خطأ }
  13. table.class يعني أن الجدول يحتوي على محدد باسم class كما في الشكل التالي <table class="class"></table> أي كل التنسيقات سوف تطبق على كامل الجدول بما أنه يحتوي على هذا المحدد. أما table .class يعني أن هناك عنصر بداخل وسم الجدول يحتوي على محدد باسم class كما في الشكل التالي <table> <tr class="class"></tr> </table> أي كل التنسيقات سوف تطبق على كامل العنصر بما أنه يحتوي على هذا المحدد.
  14. يمكنك برمجة هذه القائمة من خلال وسم select بحيث تقوم بإدخال الدول و مفتاح كل دولة بشكل يدوي إلى قاعدة البيانات و من ثم عرضها في select أو يمكنك استخدام حزمة مثل حزمة composer require pragmarx/countries أو الحزمة التالية https://github.com/TappNetwork/nova-select-country-code
  15. حاول التغيير بالخصائص المدرجة في GridView كما في الشكل التالي return GridView.builder( controller: _scrollController, scrollDirection: Axis.vertical, gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( maxCrossAxisExtent: 200, childAspectRatio: 1 / 2, crossAxisSpacing: 10, mainAxisSpacing: 20), itemCount: products.length, itemBuilder: (context, index) { return Card(); }); لذلك يوجد هذه الخصائص maxCrossAxisExtent: 200, childAspectRatio: 1 / 2, crossAxisSpacing: 10, mainAxisSpacing: 20 بحيث يمكن التلاعب بطول و عرض GridView و ايضا كيفية امتداها بشكل طولي أو عرضي.
  16. في هذه الطريقة نستخدم route المعرف للشاشة مسبقاً.
  17. هل يمكنك إرفاق الكود كاملاً ؟ أو جرب الانتقال إلى الشاشة التي تحتوي على bottomNaviagationBar .
  18. يجب عليك وضع زر عودة في leading أو actions في appbar ثم تعطيه أمر عند الضغط بأن يعود إلى صفحة A بهذا الشكل appBar: AppBar( actions: [ IconButton( icon: Icon(Icons.back), onPressed: () { Navigator.pushNamed(context, '/a'); }, ), ], ),
  19. nonce هو مرجع آمن يستخدم لمرة واحدة لمعلومات الدفع و هو العنصر الأساسي الذي يسمح لخادمك بإيصال معلومات الدفع الحساسة إلى paypal. الأن عندما يتم الدفع يتم إرجاع معلومات من paypal تخبرك بأن العملية نجحت أو فشلت وبناء على ذلك تحدد ما تريد أن تفعله .
  20. عند تشغيل المشروع عن طريق cmd , ما هي المشاكل التي تظهر ؟ هل يمكنك إرفاقها؟
  21. الأن بعد إتمام عملية الدفع , ما هو response الذي يرجع لك , هل يمكنك إرفاق هذا response , لأنه يمكن أن يكون قد يرجع لك معلومات إذا كان العملية نجحت أو لا .
  22. أولاً : يجب عليك تنزيل كوردوفا عن طريق الأمر التالي npm install -g cordova ثم يمكنك إنشاء مشروع جديد من خلال تنفيذ الأمر التالي cordova create MyApp ثم يمكنك الدخول إلى مجلد المشروع الذي تم إنشاءه عن طريق الأمر السابق بهذه الطريقة cd MyApp ثم يمكنك إضافة النظام الذي تود العمل عليه سواء تطبيق أو متصفح عن طريق الأمر التالي cordova platform add browser ثم يمكنك تشغيل أول مشروع لك باستخدام الأمر التالي cordova run browser يمكنك الاطلاع أكثر على التوثيق الخاص بكوردوفا من هنا .
  23. يمكنك استخدام حزمة flutter_launcher_name من هنا , بحيث تقوم بتثبيت الحزمة عن طريق وضع dev_dependencies: flutter_launcher_name: "^0.0.1" flutter_launcher_name: name: "yourNewAppLauncherName" في ملف pubspec.ymal مع تغيير yourNewAppLauncherName إلى اسم تطبيقك ثم تقوم بتنفيذ الأوامر التالية ليتم جلب الحزمة مع تغيير اسم التطبيق flutter pub get flutter pub run flutter_launcher_name:main ايضا يمكنك من ملف AndroidManifest.xml الموجود بداخل المسار التالي android\app\src\main يمكنك تغيير android:label="اسم التطبيق" ثم يمكنك تنفيذ الأوامر التالية flutter clean flutter build apk ليتم تصدير نسخة يكون بها اسم التطبيق متغير.
  24. أين يظهر اسم Secure Cheekout ؟ هل يمكنك إرفاق صورة للمشكلة ؟
×
×
  • أضف...