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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. هل يوجد ملف apk ضمن الملف المضغوط؟ في حال نعم، استخرجه واستخدمه، في حال كلا: يمكنك إعادة تسمية الملف واستخدامه أي تبديل اللاحقة zip إلى apk
  2. أرجو إرفاق الشيفرة البرمجية و صورة للماسعدة في فهم المشكلة، وما هو المكون الذي تعرض النص ضمنه أو تستخدمه، أم هي مشكلة في محرر الأكواد و ليس Flutter
  3. نضيف الشيفرات البرمجية من خلال محرر الأكواد الملاحظات: دالة findProfile لا تعيد قيمة return لاتقوم بتمرير قيمة لملف العرض return view('livewire.search', ['results' => $results]);
  4. ماهي البيئة التي تستعملها android studio أو xcode
  5. هل المشكلة في استخراج نسخة أندرويد من على جهاز ماك؟ ام نسخة لهواتف iphone؟
  6. أرجو استخدام محرر الاكواد ووضع الشيفرات البرمجية ضمنه
  7. كنت تربط العلاقات في النماذج الخطأ. ولا تقوم بتصدير النموذج index.js ListClass.js profile.js room.js User.js
  8. أرجو إرفاق شيفرة HTML للتجريب مع جميع التنسيقات ويمكنك استخدام محرر الأكواد لوضعهم بطريقة واضحة
  9. يمكننا إضافة الخواص للكائنات بشكل ديناميكي، مثل المرور على أول غرض، وإسناد كل من المفتاح و القيمة للغرض الآخر، و بالتالي عملية بناء الغرض الجديد بنفس القيم. <?php // كائن أول $x = new stdClass(); // كائن ثاني $y = new stdClass(); // استنساخ أول كائن لكتئن جديد $z = clone $x; // المرور على الكائن الثاني و قراءة الثنائيات و إسنادها ل الكائن الجديد foreach($y as $k => $v) {$z->$k = $v;} كما يمكننا عمل كائن جديد فيه خاصيتين كل منها عبارة عن كائنات مراد دمجها، وبتخصيص دالة get__ يمكننا إعادة الخاصية من الكائن الجديد من إحدى خاصيتيه <?php // تعريف صنف جديد class Compositor { // كل خاصية عبارة عن كائن مراد دمجه private $obj_a; private $obj_b; // الدالة البانية تسند غرضين لخواص الكائن public function __construct($obj_a, $obj_b) { $this->obj_a = $obj_a; $this->obj_b = $obj_b; } // من خلال الدالة السحرية public function __get($attrib_name) { // في حال كلنت الخاصية من أول كائن نعيدها if ($this->obj_a->$attrib_name) { return $this->obj_a->$attrib_name; } // وإلا ستكون في الثاني else { return $this->obj_b->$attrib_name; } } }
  10. تأكد من الملف الناتج في المسار: build/app/outputs/flutter-apk/app-release.apk وتأكد من أمر استخراج الملف بأن يكون: flutter build apk --release أو الفصل حسب abi حسب المعالج و نظام الهواتف flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
  11. في علاقة الكثير لكثير، كل سجل أو وثيقة تحوي ثنائية أو أكثر من الخواص GameTeam team_1_id team_2_id date score .. 1 1 2 2 2 3 3 2 3 لاحظ أن لكل مباراة معلوماتها الكاملة، من الفرق المشاركة و التاريخ و النتيجة .. أي سطر في الجدول يعبر عن مباراة
  12. سبب الخطأ هو عدم تضمين صنف الخواص DataTypes من مكتبة sequelize const { DataTypes , sequelize } = require("sequelize"); DataTypes.INTEGER هنا تصبح تعمل ربما تختلف حسب إصدار المكتبة لديك. يمكنك تعريف الجدول الوسيط من خلال نموذج مثل أي نموذج آخر.. ويتم الربط من خلال تمريراسم النموذج للنماذج المرتبطة به من خلال through وتأكد من تطابق الأسماء مثلاً في المباراة أكثر من فريق، وكل فريق يلعب أكثر من مباراة تكون العلاقة: const GameTeam = sequelize.define('GameTeam', { id: { type: DataTypes.INTEGER, primaryKey: true, } }); Team.belongsToMany(Game, { through: GameTeam }); Game.belongsToMany(Team, { through: GameTeam }); sequelize many-to-many
  13. هل بدأت بكتابة البرنامج؟ يمكننا مساعدتك في إصلاح الأخطاء ليكن لديك ملف اتصال مع قاعدة البيانات فيه الشيفرة: <?php // بيانات اتصال مع الخادم $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // انشاء اتصال $conn = mysqli_connect($servername, $username, $password, $dbname); // تحقق من الاتصال if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } ?> يتم تضمين الجزء السابق في جميع ملفات PHP التي تتخاطب مع قاعدة البيانات لعرض بيانات تصنيف معين، نمرر له id من خلال النقر على رابط <a href="page.php?id=123"> الصفحة 123 </a> ثم لجلب بيانات معينة نقوم بالتالي: <?php // قراءة التصنيف من المستخدم $id = $_GET['id']; // تجهيز الاستعلام $sql = "SELECT id, name FROM category where id = $id "; // تنفيذ الاستعلام $result = mysqli_query($conn, $sql); // في حال وجود نتائج if (mysqli_num_rows($result) > 0) { // طباعة النتائج سطر بسطر while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>"; } } else { echo "0 results"; } mysqli_close($conn); لإرسال بيانات للمخدم، نستخدم HTML Form method=post أي نريد إرسال استمارة فيها ملفات action=page.php اسم صفحة التي تعالج الطلبية حقول إدخال <form method="post" action="page.php"> <input type="text" name="id" value="1"/> <input type="text" name="name" value="cat_name"/> <button type="submit">Submit</button> </form> التعامل مع النماذج: يمكنك الاستفادة من مقالة SQL التالية لتنفيذ استعلامات الإضافة و الحذف: شرح استخدام واجهة mysqli: والتعامل مع الملفات: يمكنك الاستفادة من توثيق حسوب موسوعة حسوب PHP عنصر الإدخال input ننتظر كتابتك لبعض الشيفرات ثم طرح سؤال محدد أكثر. قدمت إجابة لجلب بيانات المنتجات التي لها تصنيف معين
  14. لإنشاء ملف والكتابة عليه، يمكننا استخدام الصنف File Writer و الدالة write import java.io.FileWriter; // تضمين FileWriter class import java.io.IOException; // تضمين IOException class للتعامل مع الأخطاء public class WriteToFile { public static void main(String[] args) { try { // اسم الملف تعريف كائن للكتابة على الملف FileWriter myWriter = new FileWriter("filename.txt"); myWriter.write("نكتب نص في الملف!"); myWriter.close(); System.out.println("تم الكتابة بنجاح"); } catch (IOException e) { System.out.println("حدثت مشكلة"); e.printStackTrace(); } } } للقراءة من ملف: import java.io.File; // تضمين File class import java.io.FileNotFoundException; // تضمين class to تعامل مع أخطاء import java.util.Scanner; // تضمين Scanner class to قراءة ملفات نصية public class ReadFile { public static void main(String[] args) { try { // اسم الملف إنشاء غرض يمثل الملف File myObj = new File("filename.txt"); // تمرير الملف للماسح Scanner myReader = new Scanner(myObj); // طالما يوجد سطر في الملف while (myReader.hasNextLine()) { // قراءة السطر String data = myReader.nextLine(); // طباعة البيانات System.out.println(data); } myReader.close(); } catch (FileNotFoundException e) { System.out.println("حدث خطأ."); e.printStackTrace(); } } } بالنسبة لحذف بيانات من ملف، نقرأ الملف ونخزنه ضمن سلسلة نصية، ثم نعدل عليها (مثلاً عمل فلترة) ثم نعيد كتابة البيانات يمكنك الاستفادة من السؤال التالي: وتأكدي من مسار الملف بأن يكون قابل للاستخدام من البرنامج مثل المشكلة مقالة:
  15. نعم بالطبع يمكنك تصميم صفحات وتركيبها على أي بيئة ويب تدعم ذلك، ومنها ووردبريس. ولكن من الأفضل لك تعلم كيفية تخصيص واجهات ووردبريس، وتركيب التصاميم والثيمات وتعديلهم، من خلال مشاهدة أي دورة تشرح ذلك. عمل تصاميم ووردبريس هي تشبه عملية ربط الصفحة مع PHP. مع العلم، ووردبريس مجاني ومتوفر للتعلم. يمكن بيع التصاميم والثيمات على موقع خمسات او بيكاليكا.
  16. أرجو إرفاق الشيفرات البرمجية كنص ضمن محرر الأكواد.
  17. نعم صحيح، يمكنك اعتبار تطبيق Electron واجهة أمامية يعمل استعلامات من خادم ويب ويمكن أن يتصل عليه من خلال API
  18. حاول إعادة صياغة السؤال و توضيحه، يمكنك كتابة إجابة و حل للمشكلة إن عرفت
  19. الأمر غير مرتبط بلغة برمجة، حيث أن مفهوم تعدد التجار، هو أن كل مستخدم يمكنه نشر منتجات و بضائع و خدمات و يتم عرضهم على الزبائن، وبعد أن يشتري الزبون يتم تحويل رصيد الأموال لحساب التاجر. أي يمكن عمل المتجر من خلال django أو لارافل أو غيره أي الموضوع يتعلق بالبرمجة، و بعض شروط عمل المتجر الإلكتروني. يوجد منصات جاهزة تساعدك على إطلاق متجرك مثل: Shopify ماجنتو BigCommerce وOpenCart و برمجيات: WooCommerce من ووردبريس مقالة من مدونة مستقل: دليلك لاختيار أفضل منصات التجارة الإلكترونية
  20. بالنسبة للخواص المحمية Protected يصطلح تسميتها بداية مع underscore _ و يمن حماية القيم من التعديل بتوفر دالة get فقط، و عدم وضع set ضمن تعريف الصنف. حماية الخواص من قيم خاطئة class Person { _age = 0; set setAge(value) { if (value < 0) { value = 0; } this._age = value; } get getAge() { return this._age; } constructor(age) { this._age = age; } } let p = new Person(100); // تعديل العمر coffeeMachine.waterAmount = -10; // _age يصبح 0, وليس -10 مثال آخر: حماية الخواص من الإسناد بشكل تام (منع إسناد قيمة جديدة) class Person { // ... constructor(value) { this._age = value; } get age() { return this._age; } } let p = new Person(100); alert(`Age is: ${p.age} Year`); // Age is: 100 p.age = 25; // Error (no setter) لا يتم تطبيقها console.log(p.age) // 100
  21. إن المنطق وراء ربط عدة مستخدمين مع بعضهم يكمن في أن لهم جميعاً قاعدة بيانات واحدة، ويوجد بيانات فيها مشتركة (على الأقل قابلة للقراءة منهم جميعاً). أي حتى يصبح تطبيقك قابل لتبادل البيانات مع غير مستخدمين، سيتوجب عليك الحصول على قاعدة بيانات على الانترنت ومخدم لها عنوان انترنت مشترك يتصل به جميع المستخدمين. يوجد الكثير من قواعد البيانات، ولنفرض أن لديك قاعدة من نوع MySQL لتطبيقك على استضافة. ما تحتاج عمله في تطبيقك هو تنصيب الوحدة الموافقة لقاعدة البيانات تلك، ثم إجراء العمليات: تهيئة الاتصال مع قاعدة البيانات تنفيذ الاستعلامات من قبل المستخدمين تنصيب الحزمة الخاصة ب mysql npm install mysql ثم تضمين الوحدة، و تهيئة الاتصال و عمل استعلام var mysql = require('mysql'); // إضافة معلومات المستخدم للاتصال على قاعدة البيانات var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : null, // password database : 'my-database-name' }); // الاتصال connection.connect(function(err) { // حدوث خطأ if(err){ console.log(err.code); console.log(err.fatal); } }); // تعريف الالة التي تجلب الاستعلام function get_10_Rows(callback){ // استعلام افتراضي $query = 'SELECT * FROM `Tasks` LIMIT 10'; connection.query($query, function(err, rows, fields) { if(err){ console.log("An error ocurred performing the query."); // حصول خطأ console.log(err); return; } console.log("Query succesfully executed", rows); // نجاح الاستعلام }); // اغلاق الاتصال connection.end(function(){ }); } ناتج الاستعلام يعود من خلال المتغير rows. <script> // عند النقر على زر معين document.getElementById('action-btn').addEventListener('click', function(){ // استدعاء دالة جلب أول 10 مهام // rows فيها النتيجة get_10_Rows(function(rows){ var html = ''; rows.forEach(function(row){ html += '<tr>'; html += '<td>'; html += row.id; html += '</td>'; html += '<td>'; html += row.name; html += '</td>'; html += '</tr>'; console.log(row); }); // حقن النتيجة في الجدول document.querySelector('#table > tbody').innerHTML = html; }); },false); </script> كانت هذه طريقة التواصل مع قاعدة بيانات مباشرة، يمكنك عمل خادم ويب مثل EXPRESS والاتصال معه عبر API ليعمل عبر الشبكة المحلية، يتوجب الاتصال على IP الحاسوب المحلي الذي فيه مخدم قواعد البيانات mysql , وضعه مكان host في جزء تهيئة الاتصال مع تحديد منفذ 3306. var connection = mysql.createConnection({ host : ' 192.168.1.2', IP port : '3306', MySQL port
  22. سبب المشكلة هو أن محدد الوصول الذي تستخدمه في جيكويري سيجلب أول عنصر له id أو class معين. الحل، وطالما أنك تحدد النقر على الأيقونة، سوف نجلب العنصر الذي يليها var Favourite=$(this).next('#favouriteInput').attr('value'); var Item=$(this).next('.item').attr('value'); var User=$(this).next('.user').attr('value'); استخدمت next لأن ترتيب شيفرة HTML هي كذلك. نريد العنصر التالي الذي له الصنف كذا .. this سوف تدل على العنصر الخاص بالأيقونة الذي تم النقر عليه.
  23. من الواضح أنك وضعت المفتاح بطريقة خطأ، أرجو اتباع هذه الخطوات: expo camera مكون جاهز يمكنك استعماله وفيها خاصية onBarCodeScanned لقراءة رمز الاستجابة السريعة { "expo": { "name": "appname", "slug": "appslug", "privacy": "unlisted", "sdkVersion": "32.0.0", "platforms": [ "ios", "android" ], "version": "2.0.36", "orientation": "portrait", "icon": "./assets/icon.png", "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#FFFFFF" }, "updates": { "fallbackToCacheTimeout": 0 }, "assetBundlePatterns": [ "**/*" ], "ios": { "supportsTablet": true, "bundleIdentifier": "gl.js.app", "infoPlist": { "NSCameraUsageDescription": "This app uses the camera to let user put a photo in his profile page." } }, "android": { "package": "gl.js.app", "permissions": [ "CAMERA", "WRITE_EXTERNAL_STORAGE", "CAMERA_ROLL" ], "versionCode": 36 } } } لاحظ الصلاحيات لأندرويد "android": { "package": "gl.js.app", "permissions": [ "CAMERA", "WRITE_EXTERNAL_STORAGE", "CAMERA_ROLL" ], "versionCode": 36 }
  24. صحيح، إن expo يقوم بتوليد هذه الملفات لاحقاً، أي طريقة بناء المشروع وهرميته مختلفة قليلاً، يمكنك إضافة الصلاحيات Permissions من خلال app.json ضمن تطبيقات EXPO و التوثيق التالي يشرح الأمر expo permissions #android expo config permissions حيث أن الطريقة هي عمل مفتاح ضمن app.json بقيمة permissions ونمرر لها مصفوفة بالصلاحيات التي نحتاجها { permissions: [ "CAMERA", "ACCESS_FINE_LOCATION" ] }
  25. كما نشر الاستاذ عبد اللطيف ايمش: يمكنك أن تجد معلومات تحديث باقي الدورات من الرباط: تحديثات دورات أكاديمية حسوب
×
×
  • أضف...