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

السؤال

نشر

لدي صفحة بها forms فيها input واحد فقط منشره في جدول تستقبل بيانات لاجراء حساب عليها

لكن واجهتني مشكلة مزعجة و هي تحديث الصفحة عن ادخال البيانات و صعودها الى الاعلى 

لذلك اريد ان امنع تحديث الصفحة لكي تصبح اسرع في اخراج الناتج

 

Recommended Posts

  • 0
نشر
بتاريخ 7 ساعات قال Abdulazeez Altamimi:

مرحبا , انا جديد هنا شكرا لكم على هذا الموقع الجميل ... اتمنى ان اجد حل لمشكلتي

لدي صفحة بها forms فيها input واحد فقط منشره في جدول تستقبل بيانات لاجراء حساب عليها

لكن واجهتني مشكلة مزعجة و هي تحديث الصفحة عن ادخال البيانات و صعودها الى الاعلى 

لذلك اريد ان امنع تحديث الصفحة لكي تصبح اسرع في اخراج الناتج

 

انا استخدمت Ajax لكن لا يعطيني الناتج يبقى الناتج مثل ما هو

  • 0
نشر
بتاريخ 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'),

 

  • 0
نشر
بتاريخ 33 دقائق مضت قال Wael Aljamal:

.get('Drywall Ceiling')

اخي الكريم هل هو يعتمد على id ام name في الوسم input

انا قمت بطباعة المتغير Drywall_Ceiling

وهو يطبع ما قمت بأدخاله و طبعت المعادلة فهو يقوم بحل المعادلة لكن في context لا يظهر لي الناتج 

حتى اقوم بتحديث الصفحة

  • 0
نشر
بتاريخ 3 دقائق مضت قال Abdulazeez Altamimi:

حتى اقوم بتحديث الصفحة

بعد إرسال طلب AJAX من المتصفح، يتوجب انتظار الرد من الخادم في دالة success حيث تستقبل الرد وتعدل الصفحة بدون تحديثها.

لنفرض لديك وسم HTML تعرض فيه الناتج:

<p id="result">

  ..

</p>

سيحشر الرد فيه كالتالي:

success:function(result_form_server){

	document.getElemetById(result).innerHTML = result_form_server;
		
	}
			

حالياً دع الخادم يعيد أي قيمة في return وبعد تأكدك من أن الرد يأتي بشكل سليم للصفحة و يعدل النتيجة قم بتعديل الشيفرة لإرجاع القيم الصحيحة

def tab_1(request):  
    ..
...

      return "123"

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Wael Aljamal:

بعد إرسال طلب AJAX من المتصفح، يتوجب انتظار الرد من الخادم في دالة success حيث تستقبل الرد وتعدل الصفحة بدون تحديثها.

لنفر


success:function(){
		
	}
			

 

عذرا اخي الكريم انا ضعيف في جافاسكريبت 

ماذا يجب ان افعل في هذه الحالة

  • 0
نشر
بتاريخ الآن قال Abdulazeez Altamimi:

عذرا اخي اني اتعبك مع

نفذت الذي قلته لي لكني لم احصل على النتيجة

هل يمكنك ضغط مجلد المشروع وإرفاقه في تعليق. شكرا

بتاريخ 25 دقائق مضت قال Wael Aljamal:

لنفرض لديك وسم HTML تعرض فيه الناتج:

هنا عليك إضافة المثال لما بعد HTML form

بتاريخ 26 دقائق مضت قال Wael Aljamal:

حالياً دع الخادم يعيد أي قيمة في return وبعد تأكدك من أن الرد يأتي بشكل سليم للصفحة و يعدل النتيجة قم بتعديل الشيفرة لإرجاع القيم الصحيحة

هذه تعني أن مكان الوسم p سيصبح 123 في حال نجح إرسال واستقبال الطلب.

  • 0
نشر (معدل)
بتاريخ 24 دقائق مضت قال Wael Aljamal:

هل يمكنك ضغط مجلد المشروع وإرفاقه في تعليق. شكرا

تمام سأرفق المشروع

الدالة موضعة في تطبيق db_math رقم السطر هو 2295

math_project.rar

تم التعديل في بواسطة Abdulazeez Altamimi
  • 0
نشر
بتاريخ منذ ساعة مضت قال 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)

  • 0
نشر
بتاريخ 8 دقائق مضت قال Wael Aljamal:

ربما هنالك خطأ كتابي فيها


document.getElementById()

 

شكر لك اخي الكريم 

لقد انحلت المشكلة 

لدي سؤال وهي كيف يمكنني تعميم على كل forms الموجودة في الصفحة ام يجب ان انشئ لكل form دالة خاصة بها

 

  • 0
نشر
بتاريخ 3 دقائق مضت قال Abdulazeez Altamimi:

لدي سؤال وهي كيف يمكنني تعميم على كل forms الموجودة في الصفحة ام يجب ان انشئ لكل form دالة خاصة بها

نعم يمكن ذلك،

تعطي هذه Form نفس class ثم نستخلص البيانات من ال form الذي حصل عليه التغغير

حاول البحث عن Targeting multiple forms to send via ajax (jquery)

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...