Jak interaktywnie komunikować się z bazą danych? [Ajax, PHP, MySQL]
Zwykle skrypty pobierają dane z bazy i wyświetlają je w pożądanej formie na internetowej stronie. Potem użytkownik ogląda to, co skrypt pobrał – jeśli chce zobaczyć coś innego, trzeba przeładować stronę, podając inne parametry do kwerendy do bazy. Można jednak dzięki Ajaksowi łatwo zaoszczędzić sobie przeładowywania.
Strona internetowa może dynamicznie pobierać dane z bazy, korzystając z obiektu XHR (XMLHttpRequest). Zobaczmy jak to się robi na przykładzie prostej listy części:
Tworzymy stronę z formularzem HTML. Będzie ona wczytywała kod w JavaScripcie zajmujący się obsługą XHR i łączący się z działającym po stronie serwera skryptem PHP.
<html>
<head>
<script type="text/javascript" src="wybor.js"></script>
</head>
<body>
<form>
<strong>Wybierz część</strong>
<select name="rekord" onchange="showPart(this.value)">
<option value="1">Lusterko</option>
<option value="2">Opony letnie</option>
<option value="3">Katalizator</option>
</select>
</form>
<br />
<div id="informacja">Opis wybranej części:</div>
</body>
</html>
Strona HTML z selektorem.
Za każdym razem, kiedy użytkownik wybierze dane (zdarzenie onchange) wykonywana jest funkcja showPart(); zdefiniowana w skrypcie wybor.js.
var xmlhttp;
function showPart(str)
{
xmlhttp=GetXmlHttpObject();
var url="baza.php";
url=url+"?part="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("informacja").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
return null;
}
Skrypt wybor.js
Funkcja showPart wywołuje funkcję GetXmlHttpObject (służącą do utworzenia obiektu XMLHTTP, definiuje adres, na który ma być on wysłany do serwera, dopisuje do URL wywołania parametr wybrany w selektorze i dodaje do niego losowy numer, żeby nie powielać danych z cache.
Teraz za każdym razem, gdy dochodzi do zmiany własności readyState, wykonywana jest funkcja stateChanged(). Kiedy wartość wyniesie „4” – funkcja wypełni kontener div o identyfikatorze „informacja” danymi pobranymi z bazy.
«poprzednia 1 2 następna »
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
19
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Z okazji wypuszczenia akcji Facebooka przypomnijmy sobie, kim jest Zuckerberg
10
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Co czeka programistów po czterdziestce?
27
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Społeczność
Mas Ciekawa informacja, ale akurat projekt wytopu stali przez chłopów to był...
_Igancio Poziom artykułu jest bardzo niski ! Niczego się nie dowiedziałem , wygląda...
voluu A ja mam problem. MIanowicie, po dodaniu kodu z tego poradnika miniaturki...
Sebek Pozycjonowanie stron za pośrednictwem firm oferujących
swoje usługi nie...
asdosad jak to zrobić na xp??
lol Jak ktoś tu wcześniej zauważył - artykuł jest o niczym, a właściwie ukrytą...
grzybecki To raczej powinien być znak dla programistów Social Media, aby swoje...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |








