Witam,
mam podobny problem, jednak chciałbym uzyskać w wyniku zapytania wynik w zmiennej bez umieszczania jego w kodzie HTML.
Chce te dane dalej przerobić w JS. Wynik będzie przerobiony na tablicą w oparciu o zwróconego stringa.
Zaczynam przygodę z JS i AJAX - proszę o wyrozumiałość.
Wszystko działa do momentu kiedy chce wynik zapytania umieścić w zmienej wynik poprzez funkcję set_wynik
Proszę o pomoc : w jaki sposób przekazać wynik zapytania do funkcji set_wynik ?
Oto kod, który udało mi się stworzyć:
window.onload = function() { // wywołanie tutaj na potrzeby testów
window.Ajax = {};
Ajax.Ajax = function init(url){
this.url = url;
}
Ajax.Ajax.prototype.set_url = function set(url) {
this.url = url;
};
Ajax.Ajax.prototype.get_url = function(){
return this.url;
}
Ajax.Ajax.prototype.set_wynik= function set(wynik){
this.wynik = wynik;
}
Ajax.Ajax.prototype.get_wynik= function (){
return this.wynik ;
}
Ajax.Ajax.prototype.wynik = function set(XMLHttpRequestObject){
if (XMLHttpRequestObject.readyState == 4){
if(XMLHttpRequestObject.status == 200){
var responseXML = XMLHttpRequestObject.responseXML; // tutaj działa
var responseText = XMLHttpRequestObject.responseText; // tutaj działa
this.set_wynik( responseText );
/* TUTAJ CHCIAŁBYM ABY WYNIK ZAPYTANIA BYŁ
* PRZESŁANY DO FUNKCJI : set_wynik
* jednak bez efektu nie wiem jak należy to wykonać
*/
}
delete XMLHttpRequestObject;
}
}
Ajax.Ajax.prototype.getXMLHttpRequestObject = function()
{
try{
// Utworzenie obiektu XMLHttpRequest (silnik Gecko, Webkit, Presco)
return new XMLHttpRequest();
}
// Wyłapuje błąd jeśli JavaScript nie posiada obiektu XMLHttpRequest
catch(e){
try{
// Utworzenie obiektu ActiveXObject, który jest zawarty w kontrolce ActiveX IE
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{ // Utworzenie obiektu ActiveXObject, dla innych wersji IE
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
// Wyświetlenie błędu o braku obsługi obiektu XMLHttpRequest
alert("Twoja przegladarka nie obsługuje technologii AJAX!");
return false;
}
}
}
}
Ajax.Ajax.prototype.startGETRequest = function()
{
var XMLHttpRequestObject = this.getXMLHttpRequestObject();
if(XMLHttpRequestObject){
XMLHttpRequestObject.open("GET", this.get_url());
XMLHttpRequestObject.onreadystatechange = function() {
Ajax.Ajax.wynik(XMLHttpRequestObject);
};
XMLHttpRequestObject.send(null);
}
}
// ZASTOSOWANIE :
var Tablica = new Ajax.Ajax("../ajax-php/ChangeType.php?p=5");
Tablica.startGETRequest();
alert(Tablica.get_wynik());
}