لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 04/08/23 في كل الموقع
-
اقوم بتصميم موقع ويب عند التعامل مع الواجهات تم استخدام قوالب جاهزة السؤال الاول احتاج الى معرفة هل ازا كانت مكتبة jquery مناسبة وفعالة السؤال الثاني ما الفرق بين تضمين المكتبة بشكل داخلي اي داخل ملفات المشروع او linkلرابط من المتصفح وايهما افضل2 نقاط
-
2 نقاط
-
أريد شراء كورس php, وواحد اضافي ولا أعلم ما هو أفضل خيار، الواجهات ام علوم الحاسوب ام كورس اخر1 نقطة
-
اقوم بتصميم موقع لجهة معينة هل يوجد اداة تساعدني في اختبار شيفرات html css js انها مكتوبة بشكل سليم. بالاضافة الى ذلك هل يوجد اداة تقوم بإضافة الميديا المناسبة لكود css لجعل الموقع مناسب على جميع الشاشات ام يجب مراعاة ذلك عند تصميم الموقع من البداية1 نقطة
-
احتاج الى قيود تمنع من ظهور المحتوى بشكل غير صحيح كيف يممن التعامل مع عرض وطول الصورة بحيث لاتفقد من دقتها وهل يجب ان تكون الصورة قبل التخصيص مناسبة ام لا في حال كانت الصورة ذو ابعاد مختلفة تمام عن مساحة ال divاو ال اي tagاخر وماهي افضل الطرق والمعايير لتعامل مع الصور1 نقطة
-
السلام عليكم. في الكود التالي يقع التوجة للرابط الخارجي إلا بعد النقر مرتين. لماذا. الكود: // form validation const [validate, setValidate] = useState([]) const [validMessage, setValidMessage] = useState(false) const user_regex = /^[A-Za-z]{3,10}$/; const password_regex = /^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{8,20}$/; const email_regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; const validated = () => { return <ValidateMessage/> } const formValidation = () => { const validate = [] if (!user_regex.test(values.username)) { validate.push("Username should be 3-10 characters and shouldn't include ni special character ni numbers ni spaces!") } if (!email_regex.test(values.email)) { validate.push('Invalid email: The email should be like aaa@aa.aa') } if (!password_regex.test(values.password)) { validate.push("Password should be 8-20 characters and include at least 1 letter, 1 number and 1 special character!") } setValidate(validate) if (validate.length === 0) { setValidMessage(true) } } const handleClick = (e) => { e.preventDefault(); formValidation() if (validMessage) { setTimeout(() => window.open("https://github.com/Saadaoui-Forkan/react-forms/tree/main/responsive_form", '_self'), 1500) } } شكرا جزيلا.1 نقطة
-
أعمل على نظام مصادقة المستخدم "authentication" لموقعي الإلكتروني وعملت أكود لعملية التسجيل والمفترض من النظام أنه عندما يحاول شخص ما التسجيل باسم مستخدم موجود مسبقا يُظهر له النظام أن المستخدم موجود مسبقا ولكن في البوستمان تحدث عملية التسجيل مرة أخرى حتى ولو كان المستخدم موجود وكأنه غير موجود مع العلم أن المستخدم الجديد لا يتم إضافته إلى قاعدة البيانات الخاصة بي في mongoDB جربت الحلول التالية: - تأكدت من IP الخاص بي وقد تم تضمينه في network access الخاص بحسابي في موقع mongoDB أي انه ليس هو المشكلة - قمت بإطفاء السيرفر ثم أعدت تشغيله وبلا فائدة أرجو ممن يمكنه مساعدتي الإطلاع على ملف الباك إند المرفق backend.rar1 نقطة
-
المشكلة التي تظهر في الفلاتر وقت تشغيل البرنامج ماالحل Execution failed for task ':app:validateSigningDebug'. > java.util.concurrent.ExecutionException: com.android.builder.utils.SynchronizedFile$ActionExecutionException: java.io.IOException: com.android.ide.common.signing.KeytoolException: Failed to create keystore.1 نقطة
-
يوجد حقل في الداتابيز عبارة عن مسار ل صورة كيف يمكن التعامل معه باستخدام ايطار العمل laravel مثال مجموعة فعاليات لها صور احتاج استيرادها وعرضها على الموقع1 نقطة
-
نشر حدث لكن احتاج الى شرط وهو تخصيص حدث معين ان يكون له افضلية اي عند نشر الأحداث على الموقع يجب ان يظهر الحدث الذي له اولولية ف المقدمة (حدث مهم على سبيل المثال )1 نقطة
-
عمري 12انا مهتم بالبرمجة ومجالات تانية في تكنولوجيا انا مش عارف ابدا منين وايهإلي هايفيدني1 نقطة
-
بالطبع فإنه هذا يخضع بدرجة أولى لمسار حفظ هاته الصور في قرص التخزين الخاص بخادمك، فإن كنت تستخدم قرص التخزين المحلي في لارافيل فإنك ستحتاج أولا انشاء الوصلة الرمزية عن طريق تنفيذ الامر: php artisan storage:link ثم بعد ذلك، استعمال الوظيفة asset لتكوين رابط أصول كامل يشير الى مسار الصورة الكاملة. على سبيل: $path = asset($user->avatar); فإن كانت مسارات الصور تخزن في مجلد avatars في مجلد storage/app/public/ وفي قاعدة البيانات كـ: avatars/image_file_name_1.ext avatars/image_file_name_2.ext avatars/image_file_name_3.ext فإن طريق قراءة المسار ستكون وفق السابق: $path = asset($user->avatar); فإن كانت قيمة user->avatar توافق avatars/image_file_name_1.ext فإن المعاد عن الوظيفة asset سيكون السلسلة النصية: https://your_domain.co/avatars/image_file_name_1.ext وهكذا..1 نقطة
-
أهلا بك حسن، قد تم الإجابة على سؤال مماثل لسؤالك في النقاشات التالية، أرجو الإطلاع عليها منعًا للتكرار. والأمر يتوقف على عدة عوامل ولا يوجد نصيحة عامة، فمثلآ كم عمرك الآن وما هي المدة المتاحة لك للمذاكر وأيضًا هل أنت بحاجة إلى وظيفة أو تدرس البرمجة بشكل جانبي أي يوجد مصدر دخل لك ولست بحاجة إلى المال. وإذا كان الوقت ضيق لديك وتريد العمل فأنصحك بدورة تطوير واجهات المستخدم أو تعلم أساسيات HTML, CSS وجافاسكريبت ثم عليك بتعلم لغة PHP ولارافيل من خلال دورة دورة تطوير تطبيقات الويب باستخدام لغة PHP.1 نقطة
-
السلام عليكم. في المثال التالي: عند القيام بfocus لأي عنصر تصعد label إلى الأعلى و أكتب أنا ما أريد. المشكل الذي حصل لي هو في إستخدام onBlur حيث ترجع label إلى الأسفل دائما (ما أريده هو إذا كانت input فارغة ترجع إلى الأسفل أما إذا كانت input غير فارغة تبقى label في الأعلى. قمت بالتجربة التالية const [focus, setFocus] = useState(false) const [idx, setIdx] = useState(null) const handleFocus = (id) => { setFocus(true) setIdx(id) } const handleBlur = (e) => { console.log(e.target.value) if (values.email.length !== 0) { setFocus(false) } } <FormInput key = {wrap.id} {...wrap} value = {values[wrap.name]} handleChange = {handleChange} handleFocus = {handleFocus} focus = {focus} idx = {idx} handleBlur = {handleBlur} /> ***************************************** FormInput.js ------------ <h5>{inputProps.title}</h5> <input name = {inputProps.name} type = {inputProps.type} className = "input" onChange = {handleChange} onFocus = {()=>handleFocus(inputProps.id)} onBlur = {handleBlur} /> شكرا لكم1 نقطة
-
مشكلتك تتمثل في الطريقة التي تتعامل بها مع حالة focus في حقل الإدخال، فحاليًا، تستخدم focus كمؤشر لمعرفة ما إذا كان حقل الإدخال يتم التركيز عليه أم لا. وبالتالي، عندما يتم فقدان التركيز، يتم تحديث الحالة focus بالقيمة false، مما يؤدي إلى إعادة label إلى الأسفل بغض النظر عن ما إذا كانت القيمة غير فارغة أم لا. بدلاً من ذلك، يمكنك استخدام حالة منفصلة لمعرفة ما إذا كان حقل الإدخال غير فارغٍ. يمكنك تحديث هذه الحالة في حدث onChange لحقل الإدخال وفي حالة كانت القيمة فارغة، فإنه يمكنك تحديث حالة focus إلى القيمة false في حدث onBlur. وإذا كانت القيمة غير فارغة، فيمكنك ترك حالة focus دون تغيير، مما يسمح بالاحتفاظ بالتسمية في الأعلى. يمكن تحديث الكود كما يلي: const [hasValue, setHasValue] = useState(false); const [focus, setFocus] = useState(false); const [idx, setIdx] = useState(null); const handleChange = (e) => { const { value } = e.target; setHasValue(value.length > 0); // ... أي تحديثات أخرى تريد إجراؤها عند تغيير القيمة }; const handleFocus = (id) => { setFocus(true); setIdx(id); }; const handleBlur = () => { if (!hasValue) { setFocus(false); } }; <FormInput key={wrap.id} {...wrap} value={values[wrap.name]} handleChange={handleChange} handleFocus={() => handleFocus(wrap.id)} focus={focus} idx={idx} handleBlur={handleBlur} /> المثال يتجاهل القيم الخاصة بـ values.email المذكورة في السؤال، ويستخدم بدلاً من ذلك القيمة الموجودة في e.target.value.1 نقطة
-
يمكنك حل المشكلة عن طريق إضافة class معين للعنصر بشكل ديناميكي، بحيث تكون وضعت قواعد css تحدد كيفية تموضع ال label بناء على ذلك، مثال بسيط على ذلك باستعمال js, html, css بحيث يمكنك تطبيق الفكرة لديك: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style> .float-container { border: solid 1px #ccc; padding: 0 8px; position: relative; } .float-container input { border: none; font-size: 16px; outline: 0; padding: 16px 0 10px; } label { font-size: 16px; position: absolute; transform-origin: top left; transform: translate(0, 16px) scale(1); transition: all .1s ease-in-out; } .float-container.active label { transform: translate(0, 4px) scale(.75); } </style> </head> <body> <div id="floatContainer" class="float-container"> <label for="floatField"> Label </label> <input id="floatField" type="text" /> </div> <script> const floatField = document.getElementById('floatField'); const floatContainer = document.getElementById('floatContainer'); floatField.addEventListener('focus', () => { floatContainer.classList.add('active'); }); floatField.addEventListener('blur', () => { if (floatField.value === "") { floatContainer.classList.remove('active'); } }); </script> </body> </html> هنا نقوم بكتابة التحويل لل label، بحيث يعمل على class محدد، و نقوم بإضافة أو إزالة هذا ال class، حيث نقوم بإضافته في حالة ال focus و حذفه في حالة ال blur فقط إذا كان الدخل فارغاً.1 نقطة
-
بالنسبة للسؤال الأول فإن استخدام مكتبة jQuery يمكن أن يكون مفيداً في بعض الحالات، وذلك إذا كنت تحتاج إلى تفاعلات بسيطة متكررة على صفحات الويب، والتي يمكن أن تكون أكثر كفاءة باستخدام jQuery بدلاً من الكتابة بلغة JavaScript الخام. ومع ذلك، إذا كنت تستخدم قوالب جاهزة، فقد يكون التعامل مع التفاعلات البسيطة بالفعل قد تم تجهيزها بشكل جيد داخل القالب وبدون الحاجة إلى jQuery. في السابق، كان استخدام jQuery شائعًا جدًا في تطوير الويب، حيث كانت تساعد على تبسيط كتابة الشفرة وجعل التعامل مع DOM و Ajax والتحكم في التفاعلات بين الصفحة والمستخدم أسهل وأكثر فعالية. ومع ظهور تقنيات جديدة مثل React وVue.js و Angular وغيرها، وأدوات الجافاسكريبت المتطورة مثل Webpack وParcel وغيرها، أصبح استخدام jQuery في تطوير الويب أقل شيوعًا في الآونة الأخيرة. ولكن في الوقت الحالي، لا يزال هناك العديد من المواقف التي يمكن فيها استخدام jQuery بشكل مفيد وفعال، مثل تحديثات صغيرة وتفاعلات بسيطة في صفحات الويب. أما بشأن البدائل لـ jQuery، فهناك العديد من المكتبات والإطارات التي تهدف إلى تسهيل عمليات تطوير الويب، وتتضمن بعضها: React: مكتبة JavaScript لبناء واجهات المستخدم الديناميكية. Vue.js: إطار عمل جافاسكريبت لبناء واجهات المستخدم. Angular: إطار عمل جافاسكريبت شامل لبناء تطبيقات الويب. بالنسبة للسؤال الثاني فإن تضمين المكتبة بشكل داخلي يعني وضع الملف المرتبط بـ jQuery داخل مجلد المشروع واستدعائه من خلال صفحات الويب التي تحتاج إليه. بينما تضمين المكتبة باستخدام الرابط من مصدر خارجي، يعني استخدام CDN (شبكة توزيع المحتوى)، حيث يتم تحميل المكتبة من الخادم الخاص بالCDN بدلاً من تحميلها من خادم الموقع. وعادةً ما تكون طريقة الـ CDN هي الخيار الأفضل، لأنها توفر تحميلًا أسرع وأكثر استقراراً، ويتم تخزينها في ذاكرة التخزين المؤقت (cache) للمتصفحات، وبالتالي يتم تحميل المكتبة من الذاكرة المؤقتة بدلاً من تحميلها من الخادم كل مرة. كما أن استخدام CDN يخفض حجم الصفحة ويحسن سرعة التحميل، مما يساعد على تحسين تجربة المستخدم.1 نقطة
-
يعد استعمال مكتبة jQuery عمليا جدا في كثير من الحالات التي نحتاج فيها اختصار الوقت أو التعامل مع تفاعليات بسيطة الى عادية بشكل مكرر او غزير في صفحات الويب أين يكون استعمال vanilla Javascript أكثر استهلاكا للوقت أو الموارد. ولكن بشكل عام، لا ينصح باستعمالها ان كان استعمالها في المشروع غير كثير، فطلب ملفها قد يأخذ بضع الوقت الذي يمكن استغلاله في طلب موارد أقل حجما وتقوم بتفس الشيء. فإن كنت تستطيع كتابة شيفراتك بشكل مخصص للتعامل مثلا مع فتح نافذة منبثقة أو اغلاق قائمة جانبية أو ما إلى ذلك. أما ان كنت تستعمل جزئيات أخرى منها مثل كائن طلبيات ال Ajax وما إلى ذلك فسيكون الاعتماد عليها خيارا جيدا. وبشأن الفرق بين تضمينها باستخدام رابط cdn او بطلبها كمورد خاص من الخادم الخاص بك فإن الطريقة الأولى هي الأفضل غالبا، وهذا لأن توزيع الموارد باستخدام cdn يعد أفضل من الطلبيات العادية من جهة، ومن جهة أخرى فإن أغلب متصفحات الويب خزنت بشكل مؤقت (في الكاش) محتوى ملف jquery عن طريق cdn في أثناء تصفحها أحد المواقع التي تستعمل مكتبة jQuery فهي مورد متكرر نسبيا بالنسبة لمتصفحات الويب وقد لا تعاود الطلب اساسا وهو الامر الذي سيسرع بطبيعة الحال من اداء الموقع.1 نقطة