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

السؤال

نشر

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

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

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

 

Recommended Posts

  • 0
نشر
  بتاريخ On 7‏/8‏/2022 at 10:16 قال Abdulazeez Altamimi:

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

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

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

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

 

أظهر المزيد  

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

  • 0
نشر
  بتاريخ On 7‏/8‏/2022 at 17:34 قال 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
نشر
  بتاريخ On 7‏/8‏/2022 at 21:22 قال Wael Aljamal:

.get('Drywall Ceiling')

أظهر المزيد  

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

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

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

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

  • 0
نشر
  بتاريخ On 7‏/8‏/2022 at 22:16 قال 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
نشر
  بتاريخ On 7‏/8‏/2022 at 22:19 قال Wael Aljamal:

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

لنفر

success:function(){
		
	}
			

 

أظهر المزيد  

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

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

  • 0
نشر
  بتاريخ On 7‏/8‏/2022 at 22:43 قال Abdulazeez Altamimi:

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

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

أظهر المزيد  

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

  بتاريخ On 7‏/8‏/2022 at 22:19 قال Wael Aljamal:

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

أظهر المزيد  

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

  بتاريخ On 7‏/8‏/2022 at 22:19 قال Wael Aljamal:

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

أظهر المزيد  

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

  • 0
نشر (معدل)
  بتاريخ On 7‏/8‏/2022 at 22:46 قال Wael Aljamal:

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

أظهر المزيد  

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

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

math_project.rarFetching info...

تم التعديل في بواسطة Abdulazeez Altamimi
  • 0
نشر
  بتاريخ On 7‏/8‏/2022 at 22:46 قال 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
نشر
  بتاريخ On 8‏/8‏/2022 at 00:00 قال Wael Aljamal:

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

document.getElementById()

 

أظهر المزيد  

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

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

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

 

  • 0
نشر
  بتاريخ On 8‏/8‏/2022 at 00:10 قال 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...