Skip to content

AJAX — PHP Misoli

AJAX interaktiv ilovalar yaratish uchun ishlatiladi.


AJAX PHP Misoli

Quyidagi misol foydalanuvchi kiritish maydoniga belgilarni yozayotganda veb-sahifa veb-server bilan qanday bog'lanishini ko'rsatib beradi:

Misol

Quyidagi kiritish maydoniga ismni yozishni boshlang:

Ism:

Maslahatlar:


Misol Tushuntirishi

Yuqoridagi misolda foydalanuvchi kiritish maydoniga belgi yozganda, showHint() funksiyasi bajariladi. Funksiya onkeyup hodisasi (event) orqali ishga tushiriladi.

Mana kod:

html
<p><b>Quyidagi kiritish maydoniga ismni yozishni boshlang:</b></p>
<p>Maslahatlar: <span id="txtHint"></span></p>

<form>Ism: <input type="text" onkeyup="showHint(this.value)" /></form>

<script>
  function showHint(str) {
    if (str.length == 0) {
      document.getElementById('txtHint').innerHTML = ''
      return
    } else {
      const xmlhttp = new XMLHttpRequest()
      xmlhttp.onload = function () {
        document.getElementById('txtHint').innerHTML = this.responseText
      }
      xmlhttp.open('GET', 'gethint.php?q=' + str)
      xmlhttp.send()
    }
  }
</script>

Kod tushuntirishi:

  1. Birinchidan, kiritish maydoni bo'shligini tekshiring (str.length == 0). Agar bo'sh bo'lsa, txtHint joyini tozalang va funksiyadan chiqing.
  2. Agar kiritish maydoni bo'sh bo'lmasa, quyidagilarni bajaring:
    • XMLHttpRequest obyektini yarating;
    • Server javobi tayyor bo'lganda bajariladigan funksiyani yarating;
    • So'rovni serverdagi PHP fayliga (gethint.php) yuboring;
    • E'tibor bering, q parametri qo'shilgan: gethint.php?q=" + str;
    • str o'zgaruvchisi kiritish maydonining mazmunini saqlaydi.

PHP fayli — "gethint.php"

PHP fayli ismlar massivini tekshiradi va mos keladigan ismlarni brauzerga qaytaradi:

php
<?php
// Ismlar massivi
$a[] = "Anna";
$a[] = "Brittany";
$a[] = "Cinderella";
$a[] = "Diana";
$a[] = "Eva";
$a[] = "Fiona";
$a[] = "Gunda";
$a[] = "Hege";
$a[] = "Inga";
$a[] = "Johanna";
$a[] = "Kitty";
$a[] = "Linda";
$a[] = "Nina";
$a[] = "Ophelia";
$a[] = "Petunia";
$a[] = "Amanda";
$a[] = "Raquel";
$a[] = "Cindy";
$a[] = "Doris";
$a[] = "Eve";
$a[] = "Evita";
$a[] = "Sunniva";
$a[] = "Tove";
$a[] = "Unni";
$a[] = "Violet";
$a[] = "Liza";
$a[] = "Elizabeth";
$a[] = "Ellen";
$a[] = "Wenche";
$a[] = "Vicky";

// URL-dan q parametrini olish
$q = $_REQUEST["q"];

$hint = "";

// Agar $q bo'sh bo'lmasa, barcha maslahatlarni tekshirish
if ($q !== "") {
  $q = strtolower($q);
  $len = strlen($q);
  foreach($a as $name) {
    if (stristr($q, substr($name, 0, $len))) {
      if ($hint === "") {
        $hint = $name;
      } else {
        $hint .= ", $name";
      }
    }
  }
}

// Agar maslahat topilmasa "no suggestion" chiqarsin yoki to'g'ri qiymatlarni chiqarsin
echo $hint === "" ? "no suggestion" : $hint;
?>