PHP’de AJAX ile Veritabanında Anlık Sonuç Getirme

Admin

Administrator
Yönetici
Administrator
Katılım
30 Eki 2016
Mesajlar
6,224
Beğeniler
10
Puanları
18,020
Konum
Zonguldak


Merhaba arkadaşlar bu konumuzda PHP’de AJAX kullanımına devam ediyoruz. AJAX ile anlık olarak dizi içerisinde arama yapabileceğimiz kodu bir önceki konumuzda paylaşmıştık. Bu konumuzda ise yine anlık olarak veritabanından veri getireceğiz.

Gerekli kodlara konu içerisinden ulaşabilirsiniz.

Örneğimizde kullanıcı veritabanından bir isim seçer ve bu seçilen isim ile ilgili veritabanından kullanıcı bilgisi getirir.


config.php Dosyası
Bu dosyamızda veritabanımız ile bağlantı yapıyoruz.

PHP:
<?PHP 
$SERVERNAME = "localhost";
$USERNAME = "root";
$PASSWOD = "";
$DATABASE = "veritabani";
TRY{
  $BAGLAN = NEW PDO("mysql:host=$SERVERNAME;dbname=$DATABASE", $USERNAME,$PASSWOD);
  $BAGLAN->exec("SET CHARACTER SET utf8");
    $BAGLAN->query("SET NAMES 'utf8'");
  $BAGLAN -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  }CATCH(PDOExeption $E){
    ECHO "Bağlantı Hatası : " . $E->getMessage();
}
?>

index.php Dosyası
Bu dosyamızda veritabanındaki isimleri listeliyor ve AJAX yardımı ile kullanıcının seçtiği değeri kullanicilar.php dosyasına id olarak get atıyoruz.

HTML:
<?PHP INCLUDE_ONCE('config.php'); ?>
<html>
<meta charset="utf-8">
  <head>
    <script>
      function vt_kullanicilar(arg){
        if(arg == ""){
          document.getElementById("sonuc").innerHTML = "";
          return;
        }else{
          if(window.XMLHttpRequest){
              // Chrome, Opera, Safer gibi tarayicilar için.
            xmlhttp = new XMLHttpRequest();
          }else{
              // IE5 ve IE6 Tarayıcıları için..
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          }
          xmlhttp.onreadystatechange = function(){
            if (this.readyState == 4 && this.status == 200) {
              document.getElementById("sonuc").innerHTML = this.responseText;
            }
          }
          xmlhttp.open("GET","kullanicilar.php?id="+arg,true);
          xmlhttp.send();
        }
      }
    </script>
    
  </head>
<body>
<form>
<select name="id" onchange="vt_kullanicilar(this.value)">
<?PHP 
$query = $BAGLAN->query("SELECT * FROM kullanicilar", PDO::FETCH_ASSOC);
  IF($query->rowCount()){
    FOREACH($query as $A){
      ECHO '<option value="'.$A['id'].'">'.$A['kull_adi'].'</option>';
    }
  }
 ?>
</select>
</form>
  <div id="sonuc">Sonuçlar Görüntülenecek</div>
</body>
</html>

kullanicilar.php Dosyası
GET metodu ile gelen id değerini yakalıyor ve veritabanında bu id sahip kullanıcı bilgisini çekiyoruz.

PHP:
<?PHP 
INCLUDE_ONCE('config.php');
  $ID = $_GET['id'];
  $query = $BAGLAN->query("SELECT * FROM kullanicilar WHERE ID = $ID")->FETCH(PDO::FETCH_ASSOC);
    ECHO $query['kull_info'];
?>
 
Üst