Veze, linkovi
Kompjuter biblioteka
Korpa

Preporučujemo

Flash 8 ActionScript

Flash 8 ActionScript

Kako ne treba programirati na jeziku C++

Kako ne treba programirati na jeziku C++

AJAX - Upotreba baze podataka - treći deo

Pregleda (30 dana / ukupno): 9 / 1694

Dok responseText vraća HTTP odgovor kao string, responseXML vraća odgovor kao XML.

ResponseXML vraća objekat XML dokumenta, koji može da se ispita i analizira koristeći W3C DOM node tree metode i parametre.

AJAX ResponseXML primer

U sledećem AJAX primeru mi ćemo demonstrirati kako web stranica može da dobije podatke iz baze podataka koristeći AJAX tehnologiju. Selektovani podaci iz baze podataka će ovaj put biti konvertovani u XML dokument, a onda ćemo upotrebiti DOM kako bismo ekstrahovali vrednosti koje će biti prikazane. Korisnici će da vide sledeće:

Objašnjenje AJAX primera

Gornji primer sadrži HTML formu, nekoliko <span> elemenata koji će da drže vraćene podatke, i link ka JavaScript-u:

<html>
<head>
<script src="selectcustomer_xml.js"></script>
</head>
<body>
<form action="">
Select a Customer:
<select name="customers" onchange="showCustomer(this.value)">
<option value="ALFKI">Alfreds Futterkiste</option>
<option value="NORTS ">North/South</option>
<option value="WOLZA">Wolski Zajazd</option>
</select>
</form>
<b><span id="companyname"></span></b><br />
<span id="contactname"></span><br />
<span id="address"></span>
<span id="city"></span><br/>
<span id="country"></span>
</body>
</html>

Gornji primer sadrži HTML formu sa padajućim menijem koji se zove "customers".

Kada korisnik izabere kupca u padajućem meniju, izvršava se funkcija koja se zove "showCustomer()". Izvršavanje funkcije se pokreće od strane "onchange" događaja. Drugim rečima: Svaki put kada korisnik promeni vrednost u padajućem meniju, poziva sw funkcija showCustomer().

JavaScript kod je prikazan dole.

AJAX JavaScript

Ovo je JavaScript kod skladišten u fajlu "selectcustomer_xml.js":

var xmlHttp
function showCustomer(str)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="getcustomer_xml.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
var xmlDoc=xmlHttp.responseXML.documentElement;
document.getElementById("companyname").innerHTML=
xmlDoc.getElementsByTagName("compname")[0].childNodes[0].nodeValue;
document.getElementById("contactname").innerHTML=
xmlDoc.getElementsByTagName("contname")[0].childNodes[0].nodeValue;
document.getElementById("address").innerHTML=
xmlDoc.getElementsByTagName("address")[0].childNodes[0].nodeValue;
document.getElementById("city").innerHTML=
xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;
document.getElementById("country").innerHTML=
xmlDoc.getElementsByTagName("country")[0].childNodes[0].nodeValue;
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

Funkcije showCustomer() i GetXmlHttpObject() prikazane gore su iste kao u prethodnim člancima. Funkcija stateChanged() je takođe upotrebljena ranije u ovom uputsvu, međutim, ovaj put mi vraćamo rezultat kao XML dokument (sa responseXML-om) i koristimo DOM da bismo ekstrahovali vrednosti koje želimo da prikažemo.

AJAX Serverska stranica

Stranica servera koju poziva JavaScript je jednostavni ASP fajl koji se zove "getcustomer_xml.asp".

Stranica je napisana u VBScript-u za Internet Information Server (IIS). Ona lako može da se prepiše u PHP, ili neki drugi serverski jezik.

Kod pokreće SQL upit u bazi podataka i vraća rezultate kao XML dokument:

<%
response.expires=-1
response.contenttype="text/xml"
sql="SELECT * FROM CUSTOMERS "
sql=sql & " WHERE CUSTOMERID='" & request.querystring("q") & "'"

on error resume next
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs=Server.CreateObject("ADODB.recordset")
rs.Open sql, conn
if err <> 0 then
response.write(err.description)
set rs=nothing
set conn=nothing
else
response.write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.write("<company>")
response.write("<compname>" &rs.fields("companyname")& "</compname>")
response.write("<contname>" &rs.fields("contactname")& "</contname>")
response.write("<address>" &rs.fields("address")& "</address>")
response.write("<city>" &rs.fields("city")& "</city>")
response.write("<country>" &rs.fields("country")& "</country>")
response.write("</company>")
end if
on error goto 0
%>

Obratite pažnju na drugu liniju u ASP kodu gore: response.contenttype="text/xml".  ContentType podešava tip HTTP sadržaja za objekat odgovora. Standardna vrednost za ovu karakteristiku je "text/html". Ovaj put mi želimo da tip sadržaja bude XML.

Zatim mi selektujemo podatke iz baze podataka, i gradimo XML dokument sa ovim podacima.

 

         
Twitter Facebook Linkedin Pinterest Email
         

Budite prvi koji će ostaviti komentar.

Ostavite komentar Ostavite komentar

 

 

 

Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272