⇧
vadnica-logo
Moje storitve O projektu Telegram O meni O meni

AJAX s PHP-jem

AJAX se uporablja za ustvarjanje bolj interaktivnih aplikacij. Primer prikazuje, kako lahko spletna stran komunicira s spletnim strežnikom, medtem ko uporabnik vnaša znake v vnosno polje. Ko uporabnik vnese znak v vnosno polje, se aktivira funkcija imenovana iskalnik(), ki jo sproži onkeyup dogodek. Koda najprej preveri ali je vnosno polje prazno (str.length === 0), in če je počisti vsebino nadomestnega znaka s in zapusti funkcijo. Če pa vnosno polje ni prazno, se izvede objekt XMLHttpRequest in zatem ustvarjena funkcija, ko je odgovor strežnika pripravljen. Zahtevo pošlje v PHP datoteko abeceda.php na strežniku. Opazimo lahko tudi, da je parameter q dodan "abeceda.php?q=" + str, kjer spremenljivka str vsebuje vsebino vnosnega polja. PHP datoteka preveri niz imen in brskalniku vrne ustrezna imena.

PRIMER
REZULTAT

PHP skripta abeceda.php prejme parameter q iz GET‑zahteve, ga pretvori v male črke in preišče vnaprej definiran seznam imen. Vrne vse imena, ki se začnejo z vnosom, ločena z vejicami. Če se nobeno ime ne ujema, izpiše sporočilo “Nisem našel ničesar”. Skripta omogoča dinamično filtriranje imen, ki ga kliče AJAX primer v JavaScript datoteki.

<?php
$a[] = "Alenka";
$a[] = "Borut";
$a[] = "Cene";
$a[] = "Črtomir";
$a[] = "Damjana";
$a[] = "Emil";
$a[] = "France";
$a[] = "Gregor";
$a[] = "Helena";
$a[] = "Irena";
$a[] = "Jana";
$a[] = "Klemen";
$a[] = "Lidija";
$a[] = "Marinka";
$a[] = "Nataša";
$a[] = "Ojdip";
$a[] = "Peter";
$a[] = "Roman";
$a[] = "Sabina";
$a[] = "Špela";
$a[] = "Tanja";
$a[] = "Uroš";
$a[] = "Veronika";
$a[] = "Zdenka";
$a[] = "Žiga";

// q parameter dobimo iz URL-ja
$q = $_REQUEST["q"];

$hint = "";

// najde vse namige iz polja q
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";
            }
        }
    }
}

// če ni najden namig
echo $hint == "" ? "Nisem našel ničesar" : $hint;