इस ट्यूटोरियल में मैं आपको दिखाऊंगा कि आप php, mysql, jQuery और AJAX का उपयोग करके div स्क्रॉल पर डेटा को गतिशील रूप से कैसे लोड कर सकते हैं या आप कह सकते हैं कि फेसबुक पेजिंग की तरह है, जब कभी भी उपयोगकर्ता डिव या पेज के नीचे होगा तो नया डेटा होगा तुरंत लोड हो गया।
इस उदाहरण में मेरे पास देशों का डेटाबेस है और मुझे div के अंदर सभी देश सूची प्रदर्शित करने की आवश्यकता है, इसलिए जब भी उपयोगकर्ता स्क्रॉल देश div देशों की अगली सूची लोड की जाएगी।
सबसे पहले देशों का डेटाबेस बनाएं।
CREATE TABLE IF NOT EXISTS `countries` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sortname` varchar(3) NOT NULL, `name` varchar(150) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=247 ; |
डेटाबेस के साथ संबंध बनाने के लिए php फ़ाइल बनाएं और सीमा के अनुसार देशों की सूची प्राप्त करें।
<?php $hostname = "localhost"; $username = "root"; $password = "root"; $dbname = "location"; $limitStart = $_POST['limitStart']; $limitCount = 50; // Set how much data you have to fetch on each request if(isset($limitStart ) || !empty($limitStart)) { $con = mysqli_connect($hostname, $username, $password, $dbname); $query = "SELECT id, name FROM countries ORDER BY name limit $limitStart, $limitCount"; $result = mysqli_query($con, $query); $res = array(); while($resultSet = mysqli_fetch_assoc($result)) { $res[$resultSet['id']] = $resultSet['name']; } echo json_encode($res); } ?> |
अब html फाइल बनाएं और कुछ css और html डालें
<style> .country { height: 300px; overflow: auto; width: 500px; } .loading { color: red; } li {font-size:24px;} #loading { display:none; color:red; font-size:30px; } </style> <div class="country"> <ul id="results"></ul> </div> <span id="loading">Loading Please wait...</span> |
उसके बाद div स्क्रॉल पर सर्वर को रिक्वेस्ट भेजने के लिए jQuery लिखें
<script> $(function() { loadResults(0); $('.country').scroll(function() { if($("#loading").css('display') == 'none') { if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) { var limitStart = $("#results li").length; loadResults(limitStart); } } }); function loadResults(limitStart) { $("#loading").show(); $.ajax({ url: "request.php", type: "post", dataType: "json", data: { limitStart: limitStart }, success: function(data) { $.each(data, function(index, value) { $("#results").append("<li id='"+index+"'>"+value+"</li>"); }); $("#loading").hide(); } }); }; }); </script> |
अब आपकी अंतिम index.html फ़ाइल होगी
index.html
<style> .country { height: 300px; overflow: auto; width: 500px; } .loading { color: red; } li {font-size:24px;} #loading { display:none; color:red; font-size:30px; } </style> <div class="country"> <ul id="results"></ul> </div> <span id="loading">Loading Please wait...</span> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script> $(function() { loadResults(0); $('.country').scroll(function() { if($("#loading").css('display') == 'none') { if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) { var limitStart = $("#results li").length; loadResults(limitStart); } } }); function loadResults(limitStart) { $("#loading").show(); $.ajax({ url: "request.php", type: "post", dataType: "json", data: { limitStart: limitStart }, success: function(data) { $.each(data, function(index, value) { $("#results").append("<li id='"+index+"'>"+value+"</li>"); }); $("#loading").hide(); } }); }; }); </script> |
लाइव डेमो देखें और सोर्स कोड डाउनलोड करें।
डेमो | डाउनलोड करें |