Skip to content

AJAX — ASP Misoli

AJAX interaktiv ilovalar yaratish uchun ishlatiladi.


AJAX ASP 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.asp?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 ASP fayliga (gethint.asp) yuboring;
    • E'tibor bering, q parametri qo'shilgan: gethint.asp?q=" + str;
    • str o'zgaruvchisi kiritish maydonining mazmunini saqlaydi.

ASP fayli — "gethint.asp"

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

php
<%
response.expires=-1
dim a(30)
'Fill up array with names
a(1)="Anna"
a(2)="Brittany"
a(3)="Cinderella"
a(4)="Diana"
a(5)="Eva"
a(6)="Fiona"
a(7)="Gunda"
a(8)="Hege"
a(9)="Inga"
a(10)="Johanna"
a(11)="Kitty"
a(12)="Linda"
a(13)="Nina"
a(14)="Ophelia"
a(15)="Petunia"
a(16)="Amanda"
a(17)="Raquel"
a(18)="Cindy"
a(19)="Doris"
a(20)="Eve"
a(21)="Evita"
a(22)="Sunniva"
a(23)="Tove"
a(24)="Unni"
a(25)="Violet"
a(26)="Liza"
a(27)="Elizabeth"
a(28)="Ellen"
a(29)="Wenche"
a(30)="Vicky"

'URL-dan q parametrini olish
q=ucase(request.querystring("q"))

'Agar q uzunligi 0 dan katta bo'lsa, barcha maslahatlarni tekshirish
if len(q)>0 then
  hint=""
  for i=1 to 30
    if q=ucase(mid(a(i),1,len(q))) then
      if hint="" then
        hint=a(i)
      else
        hint=hint & " , " & a(i)
      end if
    end if
  next
end if

'Agar maslahat topilmasa "no suggestion" chiqarsin yoki to'g'ri qiymatlarni chiqarsin
if hint="" then
  response.write("no suggestion")
else
  response.write(hint)
end if
%>