Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 49

AJAX Live Search

हम क्या बना रहे हैं

Live search जैसे ही आप type करते हैं results दिखाता है, बिना button दबाए या page reload किए। यह तीन हिस्से जोड़ता है: HTML search box, AJAX इस्तेमाल करती कुछ JavaScript, और एक PHP file जो database query करती है। यह सीखने लायक सबसे लोकप्रिय असली features में से एक है।

💡 AJAX = page चुपचाप server से data माँगता है और सिर्फ़ एक हिस्सा update करता है, बिना पूरी reload।

AJAX कैसे काम करता है

  1. User search box में type करता है।
  2. JavaScript type किया text fetch() से एक PHP file को भेजता है।
  3. PHP database खोजकर मेल खाते results लौटाता है।
  4. JavaScript वो results page के box में डालता है — तुरंत।

Page कभी reload नहीं होता; सिर्फ़ results area बदलता है। यही इसे तेज़ और आधुनिक बनाता है।

Search box और JS

<input type="text" id="search" placeholder="Search...">
<div id="results"></div>

<script>
  const box = document.getElementById("search");
  box.addEventListener("input", function () {
      fetch("search.php?q=" + encodeURIComponent(box.value))
          .then(res => res.text())
          .then(html => {
              document.getElementById("results").innerHTML = html;
          });
  });
</script>

हर keystroke (input) पर JavaScript text को search.php भेजता है और जवाब results div में डालता है। encodeURIComponent text को URL के लिए सुरक्षित बनाता है।

PHP handler

<?php
  // search.php
  $q = $_GET["q"] ?? "";
  $stmt = $pdo->prepare(
      "SELECT name FROM students WHERE name LIKE ?"
  );
  $stmt->execute(["%$q%"]);
  foreach ($stmt->fetchAll() as $row) {
      echo "<p>" . htmlspecialchars($row["name"]) . "</p>";
  }
?>
<p>Aman</p> <p>Amit</p>

Handler q पढ़ता है, matches ढूँढने को LIKE के साथ prepared statement चलाता है, और सुरक्षित HTML echo करता है जो JavaScript दिखाता है।

इसे सुरक्षित रखना

  • Prepared statement: search term bind कीजिए, कभी SQL में मत चिपकाइए।
  • Output escape: results को htmlspecialchars में लपेटिए ताकि XSS रुके।
  • Debounce: type रुकने के बाद थोड़ा रुकिए, ताकि हर अक्षर पर server न मारें।
  • छोटी queries छोड़िए: 2 characters से छोटी searches अनदेखा कीजिए।

आम गलतियाँ

  • Search term को SQL में चिपकाना। LIKE ? के साथ prepared statement इस्तेमाल कीजिए।
  • Results escape न करना। Un-escaped names XSS ला सकते हैं — htmlspecialchars इस्तेमाल कीजिए।
  • हर keystroke पर search करना। server को flood करने से बचने को debounce देरी जोड़िए।
  • encodeURIComponent भूलना। इसके बिना special characters URL तोड़ देते हैं।

सारांश

  • Live search type करते ही results update करता है, बिना page reload।
  • AJAX (fetch से) text PHP को भेजता है और जवाब दिखाता है।
  • PHP matches ढूँढने को LIKE के साथ prepared statement इस्तेमाल करता है।
  • सुरक्षा और speed को output escape कीजिए और debounce इस्तेमाल कीजिए।
  • jQuery की ज़रूरत नहीं — आधुनिक fetch काफ़ी है।

आगे, query हिस्सा सुरक्षित कीजिए prepared statements से, या structured data लौटाइए PHP JSON से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

AJAX सरल शब्दों में क्या है?
AJAX web page को background में server से बात करने और पूरी reload बिना page का हिस्सा update करने देता है। live search में यह जो आपने type किया वो PHP को भेजता है और results तुरंत दिखाता है, बिना refresh।
Live search कैसे काम करता है?
जैसे user type करता है, JavaScript text को fetch() से एक PHP file को भेजता है। PHP database query करके मेल खाते results लौटाता है, जिन्हें JavaScript results box में डाल देता है — सब real time में।
क्या AJAX को jQuery चाहिए?
नहीं। आधुनिक JavaScript में built-in fetch() function है, जो साफ़ है और किसी library की ज़रूरत नहीं। jQuery का $.ajax भी चलता है, पर fetch standard आधुनिक तरीका है।
Live search को SQL injection से सुरक्षित कैसे रखूँ?
PHP handler में prepared statement इस्तेमाल कीजिए और search term को parameter की तरह bind कीजिए। type किया text सीधे SQL query में कभी मत चिपकाइए। साथ ही output को htmlspecialchars से escape कीजिए।
मेरा live search slow या spammy क्यों लगता है?
हर keystroke पर request भेजना server को overload कर सकता है। थोड़ी देरी (debounce) जोड़िए ताकि यह सिर्फ़ user के type रुकने पर search करे, और बहुत छोटी queries अनदेखा कीजिए।
← Back to PHP Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicCAPTCHA Validation आपकी प्रगति: 49 / 50 (98%) · Lesson 50 / 50 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें