ठीक है, मेरे पास एपीआई से उत्पन्न संख्याओं की यह श्रेणी है (कुल में लगभग 600 की तरह)।

मैं उन्हें PHP के साथ एक HTML तत्व में लूप करने में सक्षम हूं। नीचे दिए गए कोड से, एक बार उत्पन्न होने पर, सभी नंबरों को लोड करने में लगभग हमेशा के लिए लग जाएगा और दिन के अंत में मेरा डिज़ाइन गड़बड़ दिखाई देगा।

<?php for ($i=1; $i < $post['number_of_slots']; $i++) { ?>
  <button"><span><?php echo $i; ?></span></button>            
<?php } ?>

Then pagination should look like this
< 1, 2, 3, 4, 5, 6, 7>

तो मैं नेविगेशन की तरह एक पेजिनेशन बनाना चाहता हूं जो प्रति पेज 100 नंबर दिखाने के लिए नंबरों को पेजिनेशन में तोड़ देगा। यदि पेज नंबर बटन दबाकर पेज रीलोडिंग से बचने के लिए इसे जेएस या jQuery के माध्यम से हासिल किया जा सकता है।

1
Colorado Akpan 12 सितंबर 2021, 04:07
1
आप ऐरे-चंक php.net/manual/en/function का उपयोग कर सकते हैं। array-chunk.php पेजिनेशन द्वारा $post['number_of_slots'] को विभाजित करने के लिए
 – 
navnath
12 सितंबर 2021, 04:44
Php निश्चित रूप से प्रत्येक पृष्ठ को पुनः लोड करना चाहेगा, लेकिन मुझे वह नहीं चाहिए
 – 
Colorado Akpan
12 सितंबर 2021, 04:51
क्या आप एक बार फ्रंट एंड पर सभी डेटा प्राप्त करने और फिर पेजिनेशन में विभाजित करने की सोच रहे हैं (जहां पेज में स्विच करते समय लोड नहीं होगा) या डीबी से डेटा प्राप्त करें?
 – 
navnath
12 सितंबर 2021, 04:56
मैं सीधे सामने के अंत से डेटा प्राप्त करना चाहता हूं, फिर इसे पेजिनेशन में विभाजित करना चाहता हूं, मुझे jQuery में सरणी ब्याह के बारे में पता है लेकिन मैं इसमें बहुत अच्छा नहीं हूं ..
 – 
Colorado Akpan
12 सितंबर 2021, 04:58
इस $post['number_of_slots'] में आपका सारा डेटा है? लेकिन आप इसमें से केवल हिस्सा चाहते हैं और पेजिनेशन के अनुसार प्रदर्शित करते हैं।
 – 
navnath
12 सितंबर 2021, 05:04

1 उत्तर

सबसे बढ़िया उत्तर
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div id="btnContainer">
</div>
<div id="dataContainer">
</div>

<script>
    Object.defineProperty(Array.prototype, 'chunk', {
      value: function(chunkSize) {
        var r = [];
        for (var i = 0; i < this.length; i += chunkSize)
          r.push(this.slice(i, i + chunkSize));
        return r;
      }
    });
    
  $(document).ready(function(){
    document.getElementById("btnContainer").addEventListener("click", getData);
      var masterData;
      var numberOfSlots;
      $.get("apiendpoint", function(data, status){
        masterData = data;
        console.log(masterData);
        numberOfSlots = masterData['data'].contest.number_of_slots;
        var arr = Array.from(Array(+numberOfSlots).keys());
        const noOfSlotsInChunk = arr.chunk(100);
        createButtons(noOfSlotsInChunk);
     });
     
  });
  
    function getData(e){
        const pageFrom = e.target.dataset.pagefrom;
        const pageTo = e.target.dataset.pageto;
        console.log(pageFrom, pageTo);
    }
  
  function createButtons(chunk){
    const fragment = document.createDocumentFragment();
    for(let i=0; i<chunk.length;i++){
        const btn = document.createElement("BUTTON");
        const initalNum = chunk[i][0]+1;
        const lastNum = (chunk[i][chunk[i].length-1])+1;
        btn.textContent = initalNum + '-' + lastNum;
        btn.setAttribute("data-pagefrom", initalNum);
        btn.setAttribute("data-pageto", lastNum);
        fragment.appendChild(btn);
    }
    document.getElementById("btnContainer").appendChild(fragment);
}
</script>
</body>
</html>
1
navnath 12 सितंबर 2021, 07:15
बहुत बहुत धन्यवाद, लेकिन यह पृष्ठ [1] में एरे (1245) की तरह संख्या मान देता है ... अब, मैं PHP के लिए (लूप) का उपयोग करके तत्वों का एक लूप वापस करना चाहता हूं .. पेजिनेशन में... <?php for($i = 0; $i < 1245; $i++){ echo '<button>'.$i.'</button>';} ?> की तरह, फिर पेज के बटन को 100 प्रति पेज के क्रम में तोड़ें
 – 
Colorado Akpan
12 सितंबर 2021, 06:05
@ColoradoAkpan.. अपडेट किया गया कोड देखें.. apiendpoint के बजाय बस मूल समापन बिंदु जोड़ें
 – 
navnath
12 सितंबर 2021, 07:17