मैं बच्चों के लिए एक ट्यूटोरियल विकसित करने की कोशिश कर रहा हूं, जहां मेरे पास एक प्रश्न और उत्तर है। मैं नीचे के रूप में दो divs का उपयोग करके इसे पूरा करने का प्रयास कर रहा हूं। दो डिवीजन रखने का विचार यह है कि बच्चे पूरे प्रश्न और समाधान को प्रिंट कर सकें या स्पष्ट समाधान पर क्लिक कर सकें, और बाद में अभ्यास के लिए प्रश्न को स्वयं हल करने के लिए प्रिंट कर सकें। मैं उसी समय लेटेक्स का उपयोग करने की कोशिश कर रहा हूं। अगर मैं 2 फाइलों में दो AJAX अनुरोध करता हूं, जैसे प्रश्न प्रतिक्रिया के साथ CALC_Q.PHP, और उत्तर प्रतिक्रिया के साथ CALC_A.php, तो मैं पूरा करने में सक्षम हूं, लेकिन मुझे यकीन है कि मैं एक फ़ाइल में एक अजाक्स अनुरोध कर सकता हूं जिससे मुझे कुछ समय बचाया जा सके , और ऐप को और अधिक तेज़ी से काम करने दें। यह आसान है अगर प्रश्न और उत्तर समान div में थे लेकिन इस तरह जब मैं स्पष्ट समाधान पर क्लिक करता हूं, तो यह प्रश्न और उत्तर मिटा देगा (क्योंकि वे एक ही div में होंगे) जो मुझे नहीं चाहिए। मैं चाहता हूं कि समाधान समाशोधन के बाद प्रश्न दृश्यमान बना रहे। यह एक जरूरी है या सवाल नहीं पूछ रहा होगा। पृष्ठ पहली बार लोड होने पर प्रश्न दिखाई नहीं देगा (मुझे इसकी जानकारी है)। गणना पर क्लिक करने के बाद प्रश्न और उत्तर दिखाई देगा, और पृष्ठ बंद होने तक प्रश्न दिखाई देगा

मुझे यकीन है कि मैं CALC.php में दो divs या json कॉल की प्रतिक्रिया को थूकने में कुछ गलत कर रहा हूं

<div id="question" class="col s12 m8 l6 noselect" style = "background-color: green;">
  <p id="ques"></p>
</div>
<div id="solution" class="col s12 m8 l6" style = "background-color: white;">
  <p id="result"></p>
</div>

function Calc()
{
$('#loader').css('visibility', 'visible');
ajaxRequest= $.ajax({
    url: 'CALC.php',
    type: 'post',
    data: { "num1": myvar1,
            "num2": myvar2
          },});
   
      ajaxRequest.done(function(response) {
         //$('#ques').text(response[q]);  //this didn't work
         //$('#result').text(response[a]); // this didn't work

         $('#ques').text(response.q);   
         $('#result').text(response.a);  
         MathJax.Hub.Queue(['Typeset',MathJax.Hub,"result"], function() {$('#loader').css('visibility', 'hidden');});     
       }
}
   

CALC.php . में

   $number1 = $_POST['num1'];  
   $number2 = $_POST['num2']; 
   $final= $number1+$number2;

   $q = $a = array();
   $q = $a = null;

   $q.="Add these numbers".$number1." and ".$number2;
   $q.="<br> Show all work ";

   $a = "$ \\text{The answer is} $.$final;
   echo json_encode(array($q,$a));
   return;
1
user1217682 3 जिंदा 2021, 19:56
नमस्ते, आप json लौटा रहे हैं, इसलिए आपको इसे पार्स करना होगा या आप dataType: "json" सेट कर सकते हैं
 – 
Swati
4 जिंदा 2021, 17:13

1 उत्तर

सबसे बढ़िया उत्तर

मैंने इसे निम्नानुसार हल किया। मैं कुछ हद तक करीब नहीं था। इसमें एक महत्वपूर्ण कथन गायब था जो मुझे इस साइट पर गतिरोध द्वारा केवल एक उत्तर में मिला था, और मदद मांगने से पहले बाकी सभी उत्तरों में नहीं, शायद इसीलिए मैंने इसे याद किया। मुझे निश्चित रूप से कुछ वाक्यविन्यास त्रुटियां थीं। निम्नलिखित प्रतिक्रिया कथन की जाँच करें, Mathjax कथन में 2 चर भी हैं: ques, परिणाम, और CALC.php में महत्वपूर्ण शीर्षलेख कथन। मैंने इसे एक वस्तु वापस भेजकर और फिर सामग्री को उनके संबंधित div में विभाजित करके जहां भी मैं चाहता हूं, इसे निम्नानुसार हल किया:

 <div id="question" class="col s12 m8 l6 noselect" style = "background-color: green;">
     <p id="ques"></p>
 </div>
 <div id="solution" class="col s12 m8 l6" style = "background-color: white;">
     <p id="result"></p>
 </div>

    function Calc()
    {
      $('#loader').css('visibility', 'visible');
      ajaxRequest= $.ajax({
               url: 'CALC.php',
               type: 'post',
               data: { "num1": myvar1,
                       "num2": myvar2
                     },});

  ajaxRequest.done(function(response) {
       $('#ques').text(response.myquestion);   
       $('#result').text(response.myanswer);  
     MathJax.Hub.Queue(['Typeset',MathJax.Hub,"ques,result"], function() {$('#loader').css('visibility', 'hidden');});     
   }
  }    
}

मेरी अन्य फ़ाइल CALC.php

$number1 = $_POST['num1'];  
$number2 = $_POST['num2']; 
$final= $number1+$number2;

$q = $a = array();
$q = $a = null;

$q.="Add these numbers".$number1." and ".$number2;
$q.="<br> Show all work ";

$a = "$ \\text{The answer is} $.$final;
$final_answer = array("myquestion"=>$q,"myanswer"=>$a);
header("Content-Type: application/json");         //without this statement, it wouldn't work
echo json_encode($final_answer);

इस हेडर स्टेटमेंट का डेडलॉक द्वारा उल्लेख किया गया था। यहाँ संदर्भ है:

Php . में एकल AJAX अनुरोध के लिए एकाधिक प्रतिक्रिया कैसे प्राप्त करें

0
user1217682 4 जिंदा 2021, 19:48