Php & Pdo & Ajax Search ile Anlık Arama Örnek Kodu
Php & Pdo & Ajax Search ile Anlık Arama Örnek Kodu
Daha siz arama kutucuğuna kelimenin baş harflerini yazarken sonuçlar sayfaya dökülsün ister misiniz? Aşağıdaki örnek te arama sonuçlarının ,arama yaptığımız sayfaya nasıl anlık olarak döküldüğünü göreceğiz.
index.html diye bir sayfa oluşturup aşağıdaki kodları içine döktürüyoruz.
<html> <head> <script> //Aramayı yaptıracak ajax kodumuz function doSearch(str) { if (str.length == 0) { document.getElementById("a").innerHTML = ""; return; } else { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("aramasonucu").innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET", "ara.php?aranan=" + str, true); xmlhttp.send(); } } </script> </head> <body> <center> <form> Aranan Kelime: <input type="text" onkeyup="doSearch(this.value)"> </form> <p> <span id="aramasonucu"></span> </p> </center> </body> </html>
ara.php sayfası
<?php require "conn.php"; // Db bağlantısını çağıralım try { $isim="%".$_GET["aranan"]."%";// linkle gelen arama terimini çekelim $stmt = $conn->prepare("SELECT id, isim, email, tel FROM tablo where isim LIKE ?"); //sorgumuza gonderelim $stmt->execute(array($isim)); $result = $stmt->fetchAll(); if( ! $result) //eğer aradığımız kelime yoksa uyarı verelim { print('No Records Found'); } else //varsa ekrana döktürelim { //Tablo Başlığı oluşturalım. While veya Foreach in dışında yazarsak bir kez ,en ustte çikar ,içinde yazarsak her kaydın başına atar echo "<table border='1' align='center' cellpadding='5px' cellspacing='2px'>"; //while($row = $stmt->fetch()) echo "<tr><th>İsim</th><th>Email</th><th>Tel</th><th colspan='2'></th></tr>"; foreach($result as $row) { //db den dönen değerleri döktürelim echo "<tr>"; echo "<td>"; echo $row['isim']; echo "</td>"; echo "<td>"; echo $row['email']; echo "</td>"; echo "<td>"; echo $row['tel']; echo "</td>"; //Dİlersen sorgudan dönen id yi tanımlayıp Düzenle ve Sil Sayfaları oluşturabiliriz. echo "<td>"; $kayit_id=$row['id']; echo "<a href='duzenle.php?id=$kayit_id'>Düzenle</a>"; echo "</td>"; echo "<td>"; $search_str=$row['id']; echo "<a href='sil.php?id=$kayit_id'>Sil</a>"; echo "</td>"; echo "</tr>"; } echo "</table>"; } } catch(PDOException $e) { echo "Hata: " . $e->getMessage(); } $conn = null; echo "</table>"; ?>