-
المساهمات
3124 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
29
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد عاطف17
-
كما وضحت اخى فإن new تستخدم لإنشاء كائن و هذا الكائن له خصائص و دوال . ويمكن أيضا إنشاء Date() بدون new ولكن الفرق انه سيوكن من نوع سلاسل نصية . لنرى الفرق بالكود let date1 = new Date(); let date2 = Date(); console.log( date1); // 2022-08-01T09:13:50.481Z وهذا كائن console.log( date2); // Mon Aug 01 2022 09:13:50 GMT+0000 (GMT) وهذا سلسلة نصية console.log(typeof date1); // object هذا من نوع كائن console.log(typeof date2); // string وهذا من نوع سلسلة نصية وكما قلت ان كل كائن لديه خصائص ودوال وبهذا فإن قمنا بإستخدام المتغير المنشأ بإستخدام new نستطيع استخدام الخصائص والدوال الخاصة بهذا الكائن و العكس بالنسبة للمتغير المنشأ بدون new لنرى الفرق فى الكود . // الكائن من نوع وقت لديه دالة تقوم بطباعة البوم let date1 = new Date(); let date2 = Date(); console.log( date1.getDay()); // هنا سوف يقوم بطباعة اليوم console.log( date2.getDay()); // هنا سوف يحدث خطأ لان المتغير من نوع سلسلة نصية وهو لايملك الدوال الخاصة بالكائن Date كما موضح فإن السطر الثالث سوف يقوم بطباعة رقم اليوم. والسطر الرابع سوف يحدث خطأ لان المتغير من نوع سلسلة نصية وهو لايملك الدوال الخاصة بالكائن Date
-
مرحبا أخى . هل تاكدت من إعادة تشغيل الخادم ؟ . حيث أن هذا الخطأ يظهر فقط فى حال إن كان العنوان غير موجود . وبما أنه ظاهر فى الكود المرسل فتأكد من إعادة تشغيل الخادم
- 3 اجابة
-
- 1
-
مرحبا أخى . new تستخدم لبناء الكائنات وهى تقوم بارجاع كائن من النوع التالى لها . يمكنك قرائة المقال التالى لفهم طريقة عملها وفيما تستخدم . https://academy.hsoub.com/programming/javascript/الباني-والعامل-new-في-جافاسكربت-r801/
-
const content = document.getElementsByClassName("content")[0]; هذا الجزء من الكود يستخدم للبحث فى جميع عناصر ال DOM الموجودة فى الصفحة و نتيجة تنفيذه هو إعادة كل العناصر التى تمتلك class يسمى content. const content = eo.target.parentElement.parentElement.getElementsByClassName( "content" )[0]; على العكس فإن هذا الكود يستخدم للبحث عن العناصر الابناء فى هذا العنصر فقط . توضيح : 1- eo.target هذا الجزء يستخدم للحصول على العنصر نفسه الذى هو item الذى بدوره هو ..plus . 2- parentElement.parentElement. يستخدم للحصول على العنصر الاب للعنصر item وهنا استخدمت مرتان للحصول على الجد للعنصر item الذي هو q1 او q2 3- getElementsByClassName("content")[0] وهذا الجزء هو للحصول على الابناء للعنصر q1 او q2 والتى تحمل class يسمى content وهذا هو الحل الافضل لاننا نبحث عن العنصر contetn الابن الخاص بالسؤال
- 2 اجابة
-
- 1
-
مرحبا أخى . الخطأ هنا . عندما تقوم بتسجيل دخول المستخدم تضع فى الجلسة كلمة user while($ret=mysqli_fetch_assoc($ret)){ session_start(); ******** $_SESSION['user']=$user; // كلمة user موجوده فى الجلسة echo'<script>window.location. href="welcome.php.php"</script>'; } وعند استدعائها في الصفحة الاخرى تسختدم user1 مع ان الموجود فى الجلسة هو user فقط وبمجرد حذف رقم 1 ستعمل معك إن شاء الله $username=$_SESSION['user1']; // الخطأ هنا $username=$_SESSION['user']; // الحل الصحيح
-
وعليكم السلام اخى . الأمر COUNT(*) يستخدم لمعرفة عدد البيانات الموجودة فى الجدول . إذا كنت تريد مثلا معرفة عدد جميع البيانات الموجودة فى الجدول تستخدم SELECT COUNT(*) from `table` وإذا كنت تريد معرفة عدد بيانات محددة مثلا معرفة عدد المستخدمين اسمائهم مثلا أحمد نستخدم . SELECT COUNT(*) from `table` WHERE name = "أحمد"
- 1 جواب
-
- 1
-
مرحبا . الخطا فى هذا الجزء من الكود const allplus =document.querySelectorAll(".plus") // allplus.forEach(item => { item.addEventListener("click", (eo) => { const content=document.getElementsByClassName("content")[0] // الخطا هنا حيث يقوم دائما باخذ العنصر الاول من ال array content.classList.toggle("mm") }) }); ولحل المشكلة نريد كل عنصر ان ياخد ال class الخاص بالابن له ويمكننا تنفيذه كالتالى . const allplus =document.querySelectorAll(".plus") // allplus.forEach((item,index) => { item.addEventListener("click", (eo) => { const content=document.getElementsByClassName("content")[index] // هنا قمنا باستخدام متغير لمكان العنصر وبذلك كل عنصر يستخدم الchild الخاص به content.classList.toggle("mm") }) });
-
مرحبا أخي . المتغيرات من نوع let و var متشابهان ولكن طريقة العمل هي المختلفه. حيث ان let تم تعريفها فى ES6 (2015). والفروق بينهم كالتالي . 1- إعادة التعريف . إذا قمت بإعادة تعريف المتغير من نوع let وسوف يقوم الكود بإظهار خطأ حيث لا يمكن تعريف المتغير فى المجال . var somthing = "somthing"; var somthing = "somthing2"; // هنا سوف يتم استبدال قيمة المتغير let somthing = "somthing"; let somthing = "somthing2"; // هنا سوف يعطيك الكود خطأ باه لايمكن إعادة تعريف المتغير 2- الرفع او Hoisting. ان لغة جافا سكريبت تتميز بخاصية الرفع دوانا عن معظم لغات البرمجة . تعريف الخاصية هو انه قبل ان يتم بدأ الكود فإن لغة الجافاسكريبت تقوم باعريف جميع المتغيرات عدا المتغيرات من نوع let والدوال فى بداية الكود وليس فى مكان كتابة الكود . console.log(somthing); // undefined هنا سوف يتم طباعة // أى اكواد أخرى var somthing = "somthing"; console.log(somthing); // somthing هنا سوف يتم طباعة ما بداخل المتغير console.log(somthing); // ReferenceError هنا سوف يتم طباعة حيث لايمكنك استخادم المتغير من نوع let قبل تعريفه // أى اكواد أخرى var let = "somthing"; console.log(somthing); // somthing هنا سوف يتم طباعة ما بداخل المتغير 3- المجال . حيث ان المتغيرات من نوع let تنتهى بمجرد انتهاء المجال الخاص بها ولا يمكن استخدامها خارج مجالها بعكس المتغيرات من نوع var var somthing = "somthing"; let somthing2 = "somthing2"; console.log(somthing, somthing2); // somthing somthing2 هنا سوف يتم طباعة المتغيران لانهم فى نفس المجال الخاص بهم { var somthing3 = "somthing3" let somthing4 = "somthing4"; console.log(somthing3, somthing4); // somthing3 somthing4 هنا ايضا سوف يتم طباعة المتغيرات لانهم فى نفس المجال الخاص يهم ولكن نلاحظ ان المتغير من نوع let سوف يتم تدميره بمجرد انتهاء مجاله } console.log(somthing3); // somthing3 هنا سوف يتم طباعةالمتغير من نوع let console.log(somthing4); // ReferenceError هنا سوف يظهر خطأ لان المتغير من نوع let قد تم تدميره بمجرد الانتهاء من المجال الخاص به
-
السلام عليكم . هل من الممكن أن تقومى بكتابة هذا الامر وإرسال صورة لما سوف يظهر لكى . php -v و ارسال ملف php.ini الموجود فى xampp/php
- 3 اجابة
-
- 1
-
مرحبا أخى. يمكنك إستخدام ال validation بهذه الطريقة { 'api_key' => 'required|integer', 'tags' => 'required', 'posts' => 'required|array|min:1|max:20', 'posts.title' => 'required|string|min:5', 'posts.content' => "required|string|min:5', } حيث يمكنك التحقق من أى عنصر متداخل عن طريق وضعه بعد ال parent مسبوقا بنقطة.
- 2 اجابة
-
- 2
-
مرحبا أخى . هل هذا الخطأ يظهر لك عندما تقوم بإرسال ال form من هذه الصفحة ؟ ام يظهر عندما تقوم بعمل تحويل من صفحة إلى صفحة ؟ -إن كان هذا ما يحدث هل يمكنك إرسال هذا الملف- الكود لا يوجد به خطأ ان كنت تقوم بإرسال ال form من هذه الصفحة . معنى رسائل التحذير الظاهرة هي أن المتغير $_POST لا توجد لديه هذه القيم $_POST['name']; $_POST['price']; $_POST['details']; $_FILES['image']; وهذا سوف يحدث فقط ان كنت تقوم بإرسال form اخرى لهذا الملف . إن كان هذا فعلا ما يحدث فقم بإرسال ال form الاخرى لنفس الملف وإذا كنت تريد أن تقوم بعمل redirect لهذه الصفحة تستطيع ان تستخدم هذا الأمر header('Location: '.'/your_file_location'); // هنا تقوم بوضع مسار الملف
- 1 جواب
-
- 1
-
كل ال models الخاصة بلارافيل تستطيع أن تقوم بتعديل شكل البيانات اللتى تريدها أن تعود من قاعدة البيانات عن طريق اضافة هذا المتغير فى ال model protected $casts = [ 'any_variable' => 'date:Y-m-d', 'another_variable' => 'datetime:Y-m-d H:00', ] ويمكنك معرفة المزيد من طرق ال casting عن طريق laravel documentation https://laravel.com/docs/8.x/eloquent-mutators#date-casting
- 1 جواب
-
- 1
-
أهلا أخى. يجب أولا ان تقوم بتنزيل برنامج composer وبعد تنصيبة تستخدم هذا الأمر فى المجلد الخاص بالمشروع composer install لتقوم بتحميل الملفات اللازمة للمشروع . وتأكد من تغير كافة الإعدادات الخاصة بالمشروع فى ملف ال .env من إعدادات قواعد البيانات و ال url الخاص بالمشروع . وتاكد من استخدام الأمر التالى الخاص بال migration لتسطيب قواعد البيانات . php artisan migrate وإن كان المشروع يستخدم إطار عمل خاص بال java script نستخدم الامرين التاليين. npm install npm run dev
- 3 اجابة
-
- 1
-
أهلا أخى . إذا كنت تستخدم أسماء الروابط مثل . Route::get('/posts', ...)->name('posts'); فهنا قد أعطينا هذا الرابط اسم posts وإذا كنا نريد أن نعرف إذا كنا في الرابط الخاص ب posts ام لا لوضع class active نستخدم الكود التالى <li class="{{Route::is('posts') ? 'active' : ''}}"> <a href="{{ url('posts.index') }}" > {{ $config->website_name }} </a> </li> وإذا لم نضع للروابط أسماء يمكن استخدام الكود التالى <li class="{{Request::url() === 'YOUR DOMAIN/posts' ? 'active' : ''}}"> <a href="{{ url('posts.index') }}" > {{ $config->website_name }} </a> </li>
- 2 اجابة
-
- 2
-
أهلا اخى . زر التسجيل لا يعمل لانه يحمل class disabled <li class="nav-item"> <a class="nav-link disabled" href="#" aria-disabled="true" data-toggle="modal" data target="#exampleModal">تسجيل الدخول</a> </li> لجعله يعمل ويظهر بالشكل العادى يجب ان نحذف class disabled <li class="nav-item"> <a class="nav-link" href="#" aria-disabled="true" data-toggle="modal" data-target="#exampleModal">تسجيل الدخول</a> </li>
-
السلام عليكم . الخطأ في الكود أن حضرتك قمتى بوضع ال eventListener بداخل ال cx() function bttn.addEventListener("click",(params) => { let er= setInterval(() => { cx(); } , 3); setInterval(() => { clearInterval(er) }, 3000); }) إذا فإن هذا الجزء من الكود لن يتم تنفيذه إلا باستدعاء ال cx() function حيث ان الدوال لا يتم تنفيذ الاكواد بداخلها إلا عندما يتم إستدعائها. وال cx() function لا تستدعى إلا بالضغط على زر randam. إذا قمتى بالضغط على زر randam ثم الضغط على randam heart ستجدينه يعمل . وبذلك فإن الحل هو وضع هذا الجزء خارج نطاق ال cx() function ومن الافضل وضعها فى ال global scope في نهاية الكود . let bttn =document.getElementById("bttn") bttn.addEventListener("click",(params) => { let er= setInterval(() => { cx(); } , 3); setInterval(() => { clearInterval(er) }, 3000); })
-
الخطأ هنا اخى mysqli_real_escape_sting() // string not sting mysqli_real_escape_string() // correct الكود الصحيح $name = mysqli_real_escape_string($conn , $_POST['name']) ; $email = mysqli_real_escape_string($conn , $_POST['email']) ; $password = mysqli_real_escape_string($conn , $_POST['password']) ; $pass = mysqli_real_escape_string($conn , $_POST['password_re']) ;
-
لارافيل تستخدم اسماء ال variables وليس الترتيب فى الترجمة . مثل 'confirm' =>'Hello, :user, Please confirrm your :email' trans('confirm', [ 'user' =>'Emad','email' => 'email address' ]) وبذلك يمكنك ارسال ال array بدون ترتيب ظهورها فى ال string ولكن تاكد من ارسال الاسم الصحيح .
- 1 جواب
-
- 1
-
السلام عليكم . الخطا هنا اخى if(year >= 2012){ feedBack.style.display = "block"; } انت تقوم فقط بتغير ال style لل feedback انت لا تريد تغير ال style ولكن تريد انت تجعل هذا العنصر يحمل invalid state ولعمل ذالك نستخدم yearSelect.setCustomValidity('any error!!') وهذه الدالة تقوم بجعل العنصر يحمل الخطا وبذالك لا نستطيع ان نقوم بعمل submit لل form وال errors تظهر تلقائيا بواسطة ال bootstrap. ولجعل العنصر صحيح مره اخرى تضع رساله الخطا فارغة. ولمزيد من التفاصيل يمكنك قرائة هذا المقال https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/setCustomValidity
- 7 اجابة
-
- 1