Abdulazeez Altamimi
-
المساهمات
17 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة Abdulazeez Altamimi
-
-
بتاريخ On 15/8/2022 at 00:45 قال Zx Zx2:
و يمكن إرسال باراميتر مع الطلبية مثلا،
users?format=json
نفحصها في المتحكم و نقرر هل نعيد json أم html
اخي الكريم كيف يمكنني ان اطبق هذه الفكرة ؟
-
بتاريخ On 12/8/2022 at 01:03 قال Wael Aljamal:
إذا يكون سببها console.log في شيفرة جافاسكربت
اخي وائل قمت بحذف جميع console.log من الجافاسكربت لكن المشكلة لم تنحل
هل هذه سبب المشكلة؟
if request.method == 'POST': return JsonResponse({'data': context}) elif request.method == 'GET': return render(request, 'db_math/tab1.html', context)
-
بتاريخ 8 ساعات قال Haroun Taha:
العفو منك ,
تأكد من عدم وجود دالة طباعة ()print داخل دالة (request)tab_1 لأنه بمجرد ظهرت البيانات على شكل json في سطر الأوامر هذا يدل أنه تم طباعة الكائن Json.
اخي الكريم هذه تظهر في المتصفح وليس في سطر الاوامر
عند الضغط على enter في المتصفح يحولني الى هذه الصفحة
-
بتاريخ 11 ساعات قال Haroun Taha:
عند إستخدام Ajax request الدالة سوف تقوم بإرجاع Json Responce لعرض البيانات في صفحة الHtml ستقوم بإستدعاء :
from django.http import JsonResponse
عند الإنتهاء من تنفيذ الدالة tab_1 سنقم بإرجاع الcontext :
def tab_1(request): ... return JsonResponse({'data':context})
في ميثود الAjax داخل ال html :
$.ajax({ url:'{% url 'your_url_to_function_tab_1' %}', type:'POST', data:{ //التي سوف تقوم بإرسالها form البيانات من ال ... },success:function(context){ // سوف نقوم بطباعة البيانات context سوف تستقبل البيانات في الوسيط let total = context.total console.log(total) },error:function(){ alert('No Completed') } })
شكرا لك اخي هارون تم الامر
لكن عندما ادخل قيمة في input و الضغط على زر Enter تظهر لي البيانات على شكل json
هل من طريقة لمنعها من الظهور ؟
-
بتاريخ منذ ساعة مضت قال Haroun Taha:
هل أرفقت الcontext المُراد تحديثه في دالة الviews لنرى هيكلية البيانات التي تريد تحديثها في صفحة الhtml.
اخي الكريم هذه الدالة فيها حل لمعادلات رياضية تستقبل ادخال من المستخدم لحل المعادلات... الان جميع البيانات الموجود في context تعرض في html بدون تحديث الصفحة بأستخدام Ajax .. ما عدى total و total1 لانهما لا يعتمدان على ادخال واحد من المستخدم بل تقوم بجمع الادخالات التي قام المستخدم بأدخالها ...
المشكلة التي واجهتني ان الادخالات فيها form و من الform استقبل البيانات و اعرضها بدون تحديث الصفحة
و total , total1 لا يعتمدان على form بل تعتمد على الجمع الادخالات
يعرض لي الحل في حال قمت بتحديث الصفحة فقط
def tab_1(request): asphalt_singles = request.POST.get('asphalt_singles') membrane = request.POST.get('Membrane') sheathing = request.POST.get('Sheathing') Roof_Trusses = request.POST.get('RoofTrusses') poly_vapour_barrier = request.POST.get('Poly_Vapour_Barrier') insulation = request.POST.get('Insulation') me = request.POST.get('meemem') drywall = request.POST.get('Drywweqwe') # Floor Partition_Allowance = request.POST.get('Partition_Allowance') Tile_Flooring = request.POST.get('Tile_Flooring') Sheathing1 = request.POST.get('Sheathing1') Floor_Joist = request.POST.get('Floor_Joist') ME2 = request.POST.get('MeeE2') Drywall_Ceiling = request.POST.get('DrywallCeiling') id_s = request.session["id"] pk = Tall_Wall_Input_db.objects.get(id=id_s) date = datetime.now() try: asphalt_singles1 = float(asphalt_singles) * 20.9 pk.asphalt_singles_input = float(asphalt_singles) pk.date_time = date pk.save() return HttpResponse(asphalt_singles1) except TypeError: asphalt_singles1 = pk.asphalt_singles_input * 20.9 except ValueError: asphalt_singles1 = pk.asphalt_singles_input * 20.9 try: membrane1 = float(membrane) * 20.9 pk.membrane_input = float(membrane) pk.date_time = date pk.save() return HttpResponse(membrane1) except TypeError: membrane1 = pk.membrane_input * 20.9 except ValueError: membrane1 = pk.membrane_input * 20.9 try: pk.sheathing_input = float(sheathing) pk.date_time = date pk.save() except TypeError: sheathingw1 = pk.sheathing_input except ValueError: sheathingw1 = pk.sheathing_input try: roof_trusses1 = float(Roof_Trusses) * 20.9 pk.roof_trusses_input = float(Roof_Trusses) pk.date_time = date pk.save() return HttpResponse(roof_trusses1) except TypeError: roof_trusses1 = pk.roof_trusses_input * 20.9 except ValueError: roof_trusses1 = pk.roof_trusses_input * 20.9 try: poly_vapour_barrier1 = float(poly_vapour_barrier) * 20.9 pk.poly_vapour_barrier_input = float(poly_vapour_barrier) pk.date_time = date pk.save() return HttpResponse(poly_vapour_barrier1) except TypeError: poly_vapour_barrier1 = pk.poly_vapour_barrier_input * 20.9 except ValueError: poly_vapour_barrier1 = pk.poly_vapour_barrier_input * 20.9 try: pk.insulation_input = float(insulation) print(insulation) pk.date_time = date pk.save() except TypeError: insulation1 = 3 * 8 / 12 except ValueError: insulation1 = 3 * 8 / 12 try: me1 = float(me) * 20.9 pk.me_input = float(me) pk.date_time = date pk.save() return HttpResponse(me1) except TypeError: me1 = pk.me_input * 20.9 except ValueError: me1 = pk.me_input * 20.9 try: drywall1 = float(drywall) * 20.9 pk.drywall_input = float(drywall) pk.date_time = date pk.save() return HttpResponse(drywall1) except TypeError: drywall1 = pk.drywall_input * 20.9 except ValueError: drywall1 = pk.drywall_input * 20.9 try: total = pk.asphalt_singles_input + pk.membrane_input + pk.sheathing_input + pk.roof_trusses_input + pk.poly_vapour_barrier_input + pk.insulation_input + pk.me_input + pk.drywall_input except TypeError: total = 0 try: total1 = float(asphalt_singles1) + float(membrane1) + 2.08 + float(roof_trusses1) + float( poly_vapour_barrier1) + 2.0 + float(me1) + float(drywall1) pk.total1 = total1 pk.total1 = total1 pk.save() except TypeError as f: total1 = 0 # input value Roof asphalt_singles_input_value = pk.asphalt_singles_input membrane_input_value = pk.membrane_input sheathing_input_value = pk.sheathing_input roof_trusses_input_value = pk.roof_trusses_input poly_vapour_barrier_input_value = pk.poly_vapour_barrier_input insulation_input_value = pk.insulation_input me_input_value = pk.me_input drywall_input_value = pk.drywall_input # Floor try: Partition_Allowance1 = float(Partition_Allowance) * 20.9 pk.Partition_Allowance_input = float(Partition_Allowance) pk.date_time = date pk.save() return HttpResponse(Partition_Allowance1) except TypeError: Partition_Allowance1 = pk.Partition_Allowance_input * 20.9 except ValueError: Partition_Allowance1 = pk.Partition_Allowance_input * 20.9 try: Tile_Flooring1 = float(Tile_Flooring) * 20.9 pk.Tile_Flooring_input = float(Tile_Flooring) pk.date_time = date pk.save() return HttpResponse(Tile_Flooring1) except TypeError: Tile_Flooring1 = pk.Tile_Flooring_input * 20.9 except ValueError: Tile_Flooring1 = pk.Tile_Flooring_input * 20.9 try: s = float(Sheathing1) * 7 pk.Sheathing1_input = float(Sheathing1) pk.date_time = date pk.save() except TypeError: sheathing2 = pk.Sheathing1_input except ValueError: sheathing2 = pk.Sheathing1_input try: Floor_Joist1 = float(Floor_Joist) * 20.9 pk.Floor_Joist_input = float(Floor_Joist) pk.date_time = date pk.save() return HttpResponse(Floor_Joist1) except TypeError: Floor_Joist1 = pk.Floor_Joist_input * 20.9 except ValueError: Floor_Joist1 = pk.Floor_Joist_input * 20.9 try: ME22 = float(ME2) * 20.9 pk.ME2_input = float(ME2) pk.date_time = date pk.save() return HttpResponse(ME22) except TypeError: ME22 = pk.ME2_input * 20.9 except ValueError: ME22 = pk.ME2_input * 20.9 try: Drywall_Ceiling1 = float(Drywall_Ceiling) * 20.9 pk.Drywall_Ceiling_input = float(Drywall_Ceiling) pk.date_time = date pk.save() return HttpResponse(Drywall_Ceiling1) except TypeError: Drywall_Ceiling1 = pk.Drywall_Ceiling_input * 20.9 except ValueError: Drywall_Ceiling1 = pk.Drywall_Ceiling_input * 20.9 return HttpResponse(Drywall_Ceiling1) try: Total_Roof = pk.Partition_Allowance_input + pk.Tile_Flooring_input + pk.Sheathing1_input + pk.Floor_Joist_input + pk.ME2_input + pk.Drywall_Ceiling_input except TypeError: Total_Roof = 0 try: s = 40 * (0.75 / 12) Total_Roof1 = Partition_Allowance1 + Tile_Flooring1 + s + Floor_Joist1 + ME22 + Drywall_Ceiling1 pk.Total_Roof1 = Total_Roof1 pk.Total_Roof1 = Total_Roof1 print('Total_Roof1', Total_Roof1) except TypeError: Total_Roof1 = 0 # __________________________________________________________ Partition_Allowance_input_value = pk.Partition_Allowance_input Tile_Flooring_input_value = pk.Tile_Flooring_input Sheathing1_input_value = pk.Sheathing1_input Floor_Joist_input_value = pk.Floor_Joist_input ME2_input_value = pk.ME2_input Drywall_Ceiling_input_value = pk.Drywall_Ceiling_input context = { # Roof 'asphalt_singles1': round(asphalt_singles1, 2), 'membrane': round(membrane1, 2), 'sheathing': round(40 * (0.625 / 12), 2), 'roof_trusses': round(roof_trusses1, 2), 'poly_vapour_barrier': round(poly_vapour_barrier1, 2), 'insulation': 3 * 8 / 12, 'me': round(me1, 2), 'drywall': round(drywall1, 2), 'total': round(total, 2), 'total1': round(total1, 2), # In order to keep the value entered by the user 'asphalt_singles_input_value': round(asphalt_singles_input_value, 2), 'membrane_input_value': round(membrane_input_value, 2), 'sheathing_input_value': round(sheathing_input_value, 2), 'roof_trusses_input_value': round(roof_trusses_input_value, 2), 'poly_vapour_barrier_input_value': round(poly_vapour_barrier_input_value, 2), 'insulation_input_value': round(insulation_input_value, 2), 'me_input_value': round(me_input_value, 2), 'drywall_input_value': round(drywall_input_value, 2), # Floor 'Partition_Allowance1': round(Partition_Allowance1, 2), 'Tile_Flooring1': round(Tile_Flooring1, 2), 'Sheathing2': round(40 * (0.75 / 12), 2), 'Floor_Joist1': round(Floor_Joist1, 2), 'ME22': round(ME22, 2), 'Drywall_Ceiling1': round(Drywall_Ceiling1, 2), 'Total_Roof': round(Total_Roof, 2), 'Total_Roof12': round(Total_Roof1, 2), # In order to keep the value entered by the user 'Partition_Allowance_input_value': Partition_Allowance_input_value, 'Tile_Flooring_input_value': Tile_Flooring_input_value, 'Sheathing1_input_value': Sheathing1_input_value, 'Floor_Joist_input_value': Floor_Joist_input_value, 'ME2_input_value': ME2_input_value, 'Drywall_Ceiling_input_value': Drywall_Ceiling_input_value, } return render(request, 'db_math/tab1.html', context)
- 1
-
لقد قمت بمنع الصفحة من التحديث عند ارسال form بوسطة Ajax
لكن بعض القيم في context لم تتغير لان الصفحة لم تقم بالتحديث
هل من طريقة لكي اجلب قيم موجودة في context وعرضها في html دون تحديث الصفحة؟
-
اخي الكريم انا لدي معادلة تعتمد على جمع المدخلات التي قام المستخدم بأدخالها وهي لا تحتوي على الوسم form
انا قمت بجمعها في django وقم بتمريرها في context لاعرضها في نفس الصفحة
لكن عند ادخال قيمة في احدى form الموجودة في الصفحة لا يحدث تغيير على نتيجة... فقط تتغير عندما اقوم بتحديث الصفحة
هل من طريقة لجعلها تتغير كلما قمت بأدخال في fome؟
- 1
-
بتاريخ 8 دقائق مضت قال Wael Aljamal:
ربما هنالك خطأ كتابي فيها
document.getElementById()
شكر لك اخي الكريم
لقد انحلت المشكلة
لدي سؤال وهي كيف يمكنني تعميم على كل forms الموجودة في الصفحة ام يجب ان انشئ لكل form دالة خاصة بها
-
بتاريخ منذ ساعة مضت قال Wael Aljamal:
هذه تعني أن مكان الوسم p سيصبح 123 في حال نجح إرسال واستقبال الطلب.
عند الضغط على enter لاحظت هذه الاخطاء في console
Uncaught TypeError: document.getElemetById is not a function
at Object.success ((index):509:18)
at fire (jquery-3.5.1.js:3496:31)
at Object.fireWith [as resolveWith] (jquery-3.5.1.js:3626:7)
at done (jquery-3.5.1.js:9786:14)
at XMLHttpRequest.<anonymous> (jquery-3.5.1.js:10047:9) -
بتاريخ 24 دقائق مضت قال Wael Aljamal:
هل يمكنك ضغط مجلد المشروع وإرفاقه في تعليق. شكرا
تمام سأرفق المشروع
الدالة موضعة في تطبيق db_math رقم السطر هو 2295
-
بتاريخ 6 دقائق مضت قال Wael Aljamal:
تم نشر التعليق بالخطأ قبل إكماله
أرجو تحديث الصفحة
عذرا اخي اني اتعبك مع
نفذت الذي قلته لي لكني لم احصل على النتيجة
-
بتاريخ 1 دقيقة مضت قال Wael Aljamal:
بعد إرسال طلب AJAX من المتصفح، يتوجب انتظار الرد من الخادم في دالة success حيث تستقبل الرد وتعدل الصفحة بدون تحديثها.
لنفر
success:function(){ }
عذرا اخي الكريم انا ضعيف في جافاسكريبت
ماذا يجب ان افعل في هذه الحالة
-
بتاريخ 33 دقائق مضت قال Wael Aljamal:
.get('Drywall Ceiling')
اخي الكريم هل هو يعتمد على id ام name في الوسم input
انا قمت بطباعة المتغير Drywall_Ceiling
وهو يطبع ما قمت بأدخاله و طبعت المعادلة فهو يقوم بحل المعادلة لكن في context لا يظهر لي الناتج
حتى اقوم بتحديث الصفحة
- 1
-
بتاريخ 22 دقائق مضت قال Wael Aljamal:
أرجو إرفاق الشيفرات البرمجية التي ترتبط بالمشكلة لنستطيع إرشادك للحل
هذا جزء من الشيفرة لانها طويلة
في html وضعتها على شكل جدول ... الادخال و يقابله الحل
<tr> <td></td> <td>1/2" Drywall Ceiling </td> <td style="color: rgb(42, 178, 246);"> <form id="myForm13" method="post"> {% csrf_token %} <input id="Drywall_Ceiling" style="width: 89px;" type="number" step="0.0001" class="form-control" name="Drywall Ceiling" value="{{Drywall_Ceiling_input_value}}"> <input type='subnit' value='submit'> </form> </td> <td>kPa</td> <td style="color: rgb(247, 10, 10)">{{Drywall_Ceiling1}}</td> <td>PSF</td> </tr> <script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> <script type="text/javascript"> $(document).on('submit','#myForm13',function(e){ e.preventDefault(); $.ajax({ type:'POST', url:'{% url "tab1" %}', data: { Drywall_Ceiling:$("#Drywall_Ceiling").val(), csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val() }, success:function(){ } }) }); </script>
في views.py
def tab_1(request): Drywall_Ceiling = request.POST.get('Drywall Ceiling') try: Drywall_Ceiling1 = float(Drywall_Ceiling) * 20.9 pk.Drywall_Ceiling_input = float(Drywall_Ceiling) pk.date_time = date pk.save() except TypeError: Drywall_Ceiling1 = pk.Drywall_Ceiling_input * 20.9 except ValueError: Drywall_Ceiling1 = pk.Drywall_Ceiling_input * 20.9 context = { 'Drywall_Ceiling1': round(Drywall_Ceiling1, 2), } return render(request, 'db_math/tab1.html', context)
في ملف urls.py
path('dead-load/', views.tab_1, name='tab1'),
-
بتاريخ 7 ساعات قال Abdulazeez Altamimi:
مرحبا , انا جديد هنا شكرا لكم على هذا الموقع الجميل ... اتمنى ان اجد حل لمشكلتي
لدي صفحة بها forms فيها input واحد فقط منشره في جدول تستقبل بيانات لاجراء حساب عليها
لكن واجهتني مشكلة مزعجة و هي تحديث الصفحة عن ادخال البيانات و صعودها الى الاعلى
لذلك اريد ان امنع تحديث الصفحة لكي تصبح اسرع في اخراج الناتج
انا استخدمت Ajax لكن لا يعطيني الناتج يبقى الناتج مثل ما هو
-
لدي صفحة بها forms فيها input واحد فقط منشره في جدول تستقبل بيانات لاجراء حساب عليها
لكن واجهتني مشكلة مزعجة و هي تحديث الصفحة عن ادخال البيانات و صعودها الى الاعلى
لذلك اريد ان امنع تحديث الصفحة لكي تصبح اسرع في اخراج الناتج
كيف جلب قيمة من context في django مع Ajax؟
في جافا سكريبت
نشر
هل اضع باراميتر في الدالة على الشكل التالي
و اقم بأنشاء مسارين الاول للhtml و الثاني للjson
ام يجب الاعتماد على restfull api