AJAX - undefined

poruka: 27
|
čitano: 3.953
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
AJAX - undefined

Počeo sam učiti AJAX, i prema tutorialu sam napravio onaj dio kad se provjerava o kojem je browseru riječ. Znate ono, varijabla ajaxRequest poprimi određenu vrijednost, ovisno o browseru.

 

Sve sam prepisao iz tog tutoriala u Notepad++, i dodao naredbu alert(ajaxRequest), koja bi trebala javiti koju vrijednost ima varijabla ajaxRequest.

 

Međutim, i Mozilla, i Chrome, i IE uporno pokazuju u alertboxu da je ta varijabla undefined.

 

Mislio sam da sam ja negdje pogriješio, pa sam odlučio kopirati kod iz AJAX tutoriala sa stranice tizag.com.

 

Ali, svi browseri mi i dalje prikazuju undefined.

 

U čemu bi mogao biti problem?

 

Evo .js kod:

var ajaxRequest;

function ajaxFunction(){
   
    try{
       // Opera 8.0+, Firefox, Safari
       ajaxRequest = new XMLHttpRequest();
    } catch (e){
       // Internet Explorer Browsers
       try{
          ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
          try{
             ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e){
             // Something went wrong
             alert("Your browser broke!");
             return false;
          }
       }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
       if(ajaxRequest.readyState == 4){
          document.myForm.time.value = ajaxRequest.responseText;
       }
    }

    ajaxRequest.open("GET", "serverTime.php", true);
    ajaxRequest.send(null);
}
    alert(ajaxRequest);

 

 
0 0 hvala 0
17 godina
offline
AJAX - undefined

Neda mi se sada traziti gdje si falio, ali cu ti olaksati zivot na nacin da cu ti dati ovaj link:

http://api.jquery.com/jQuery.ajax/

 

jQuery ti olaksava zivot u radu sa ajaxom (zapravo opcenito).

 
0 0 hvala 1
16 godina
neaktivan
offline
AJAX - undefined

Hvala na linku, to ću svakako proučiti.

 

A znaš li bar otprilike u čemu je stvar s ovim kodom? Kopiran je sa te stranice, od slova do slova (copy-paste, tu ne može biti nikakvih pravopisnih grešaka).

 

Kod njih radi normalno, a kod mene ne... U čemu bi tu mogao biti problem?

 
0 0 hvala 0
17 godina
offline
AJAX - undefined

Nesto mi je ostalo u pamcenju (daaaavno davno dok nisam radio sa jQuery-em) da je Ajax imao problem sa citanjem ovog state-a (dakle jel se ajax upit izvrsio ili ne) na nekim browserima. Pokusaj sa tim

Dakle ovaj dio koda

if(ajaxRequest.readyState == 4)

 

pokusaj stavit iza ovog "if-a"

else alert(ajaxRequest.readyState);

 

pa prati koje state-ove vraca u razlicitim browserima.

 

 
0 0 hvala 0
16 godina
neaktivan
offline
AJAX - undefined

    ajaxRequest.onreadystatechange = function(){
       if(ajaxRequest.readyState == 4){
          document.myForm.time.value = ajaxRequest.responseText;
       }
       else alert(ajaxRequest.readyState);
    }

Ovako?

 

Opet ne radi...

 
0 0 hvala 0
17 godina
offline
AJAX - undefined

Daj mi posalji cijeli kod na mail (mail je na PP)

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: AJAX - undefined
Evo jesam.
17 godina
offline
AJAX - undefined

Imas mail

 
0 0 hvala 1
17 godina
neaktivan
offline
AJAX - undefined

Radi se o asinkronom pozivu i kad ti napraviš alert(ajaxRequest), alert ne čeka da se on obavi nego skripta nastavlja s izvođenjem. Zato i postavljaš tamo funkciju na onreadystatechange. Unutar te funkcije stavi alert.

 
0 0 hvala 0
16 godina
neaktivan
offline
AJAX - undefined

Gdje da točno postavim alert? Stavio sam ga na više mjesta, i uvijek isto. Undefined.

 
0 0 hvala 0
17 godina
neaktivan
offline
AJAX - undefined

Hmm, ne znam zašto ti vraća undefinied, meni uredno 5 puta alert pokaže [object XMLHttpRequest] u Firefoxu.

 

Probaj odmah poslije ajaxRequest = new XMLHttpRequest();

 

Nisam siguran što točno pokušavaš, ali ako želiš da ti u alertu ispiše tekst koji je dobio onda:

 

if (ajaxRequest.readyState == 4){
    alert(ajaxRequest.responseText);
}

 

 
0 0 hvala 0
16 godina
neaktivan
offline
AJAX - undefined

Želim samo da mi pokaže vrijednost varijable ajaxRequest, ovisno o browseru.

 

Tek učim, a taj primjer navode u više tutoriala na internetu. Kužim da je to osnova AJAX-a.

 

Probao sam staviti alert i tamo, ali opet ništa.

 

 

Kod je očito ispravan, kad radi kod vas. Što onda ne valja kod mene (a isti je kod)?

 
0 0 hvala 0
17 godina
offline
AJAX - undefined

jes probao onaj jQuery sto sam ti poslao?

 
0 0 hvala 0
17 godina
neaktivan
offline
AJAX - undefined

Probaj ovako:

 

index.html:

 

<html>
<head>
<title>Document</title>
<script type="text/javascript">

var ajaxRequest;

function ajaxFunction(){
    try{
       // Opera 8.0+, Firefox, Safari
       ajaxRequest = new XMLHttpRequest();
    } catch (e){
       // Internet Explorer Browsers
       try{
          ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
          try{
             ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e){
             // Something went wrong
             alert("Your browser broke!");
             return false;
          }
       }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
       if(ajaxRequest.readyState == 4){
          document.getElementById("doctext").firstChild.nodeValue = ajaxRequest.responseText;
          alert(ajaxRequest);
       }
    }

    ajaxRequest.open("GET", "test.xml", true);
    ajaxRequest.send(null);
}

</script>
</head>

<body onload="ajaxFunction()">
   
<div id="doctext">x</div>
</body>
</html>

 

test.xml:

 

<?xml version="1.0"?>
<test>
    <body>Test document</body>
</test>

 

Edit:

Možda nije loše napomenuti da ti browser vjerojatno neće dozvoliti da dohvatiš lokalni dokument ili dokument s druge domene.

Ovo radi u Firefoxu, ali ne u SRWare Ironu (vjerojatno neće ni u Chromu) i IE8.

 

Poruka je uređivana zadnji put pet 1.4.2011 21:19 (Tom69).
 
0 0 hvala 0
16 godina
neaktivan
offline
Re: AJAX - undefined
tnakir kaže...

jes probao onaj jQuery sto sam ti poslao?

Da. Kad stavim taj kod umjesto onog mog, ne dogodi se ništa.

Kad ga stavim na početak skripte, i ostavim stari tekst, opet ništa.

Kad je na kraju skripte, opet dobijem undefined.

Tom69 kaže...

Probaj ovako:

 

index.html:

 

<html>
(...)
</html>

 

test.xml:

<?xml version="1.0"?>
(...)

 

Edit:

Možda nije loše napomenuti da ti browser vjerojatno neće dozvoliti da dohvatiš lokalni dokument ili dokument s druge domene.

Ovo radi u Firefoxu, ali ne u SRWare Ironu (vjerojatno neće ni u Chromu) i IE8.

 

Evo ovo mi radi u Firefoxu i Chromu, ali ne u IE.

 

Čekaj, čekaj, ovo što si napisao pod edit - ja svoju index.html stranicu s AJAX skriptom pokrećem sa svog kompa, znači nije na nikakvom serveru.. Ima li to veze?

17 godina
offline
AJAX - undefined
Jesi inkludao jquery framework... Naravnoda ti neće bez njega radit. Www.jquery.com
 
0 0 hvala 0
15 godina
protjeran
offline
AJAX - undefined

El ti uopće imaš fajl nazvan "serverTime.php"? (I naravno PHP instaliran na kompu)

Poruka je uređivana zadnji put sub 2.4.2011 17:59 (lrx).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: AJAX - undefined
tnakir kaže...
Jesi inkludao jquery framework... Naravnoda ti neće bez njega radit. Www.jquery.com

 

Evo jesam. Stavio sam <script type="text/javascript" src="jquery.js" > </script>

 

u .html, i u jquery.js dodao ovo:

 

$(document).ready(function() {
            $.ajax({
            url: 'serverTime.php',
                success: function(data) {
                alert(data);
                }
            });
        });
     

U mozilli pokazuje nešto, u Chromeu ništa.

 

lrx kaže...

El ti uopće imaš fajl nazvan "serverTime.php"? (I naravno PHP instaliran na kompu)

Nije stvar u tome, probao sam i sa .xml pa nije išlo...

 

 

Imam osjećaj da ne razumijete što točno tražim. Ne želim pokretati nikakav time.php, želim samo napraviti onu osnovnu AJAX stvar, koja pokazuje na kojem ste browseru.

15 godina
protjeran
offline
AJAX - undefined

Nisi ti shvatio što je AJAX

Moj PC  
1 0 hvala 0
17 godina
moderator
online
Re: AJAX - undefined
betmen kaže...
Imam osjećaj da ne razumijete što točno tražim. Ne želim pokretati nikakav time.php, želim samo napraviti onu osnovnu AJAX stvar, koja pokazuje na kojem ste browseru.

Ne mogu te razumjeti kad ti ne znaš objasniti. Ne mogu ti čitati misli. To na kojem je korisnik browseru nema nužno nikakve veze s Ajaxom (osim recimo ako nećeš koristiti PHP za detekciju i onda će ta PHP skripta samo ispisati naziv browsera) - to možeš izvući i preko običnog JavaScripta - vidi recimo ovo.

 

Koji ti je sadržaj datoteke serverTime.php? Meni tvoj primjer radi bez ikakvih problema. Ja sam u serverTime.php ubacio samo jedan echo. Možeš li serverTime.php otvoriti u svakom browseru? Ako ne možeš, onda znači da ti nešto nije u redu s tom skriptom.

 

 

Ti se prvo sam sa sobom dogovori što želiš pa onda pitaj!

Poruka je uređivana zadnji put čet 7.4.2011 3:18 (mbaksa).
16 godina
neaktivan
offline
Re: AJAX - undefined

Prvo, ispričavam se ako sam nekog uvrijedio. Stvarno nisam mislio ništa loše.

 

Smeta mi što je tema otišla u krivom smjeru.

 

Gle u čemu je stvar: počeo sam učiti AJAX, doslovno kopirao kod sa stranice s tutorialom i  ništa, jednostavno ne radi. Pogledajte taj tutorial da skužite što pokušavam napraviti.

 

Pitanje nije "je li kod ispravan?", jer znam da je, mora biti kad radi normalno na toj stranici, a i kod vas.  Pitanje je zašto ovo ne radi kod mene?

I tu je došlo do zabune kad ste vi počeli ispravljati 'moj' kod, umjesto da se koncentrirate na pravo pitanje. Oprostite još jednom ako nisam dobro naglasio što točno tražim...

 

Znači, prava pitanja: Kod je ispravan, zašto ne radi kod mene?

 

neću vam zamjeriti ako odlučite odustati od ove teme, i mene već živcira :)

17 godina
neaktivan
offline
AJAX - undefined

Neće ti PHP raditi bez web servera. Instaliraj npr. WAMP pa isprobavaj na localhostu.

 
1 0 hvala 1
16 godina
neaktivan
offline
Re: AJAX - undefined
Da, ali probao sam i sa XML-om umjest PHP-a, pa opet ne radi.
17 godina
moderator
online
Re: AJAX - undefined
betmen kaže...
Da, ali probao sam i sa XML-om umjest PHP-a, pa opet ne radi.

Ma šta ali?! Nema ali. JavaScript nema pristup tvom lokalnom računalu. On može pristupiti samo datotekama na webu, dakle http: i sl.

 

Instaliraj WAMP - s njim ti je najlakše upogoniti lokalni web-server. Pazi ako imaš Skype - ili izađi iz Skypea ili u Skypeu promijeni port koji koristi, jer Skype po defaultu zauzme port 80, a taj port ti treba za web-server.

16 godina
neaktivan
offline
AJAX - undefined

Instalirao sam WAMP i evo sad se već nešto događa, ali ni sad nije savršeno...

 

Idem probati instalirati PHP.

 
0 0 hvala 0
17 godina
moderator
online
Re: AJAX - undefined
betmen kaže...

Instalirao sam WAMP i evo sad se već nešto događa, ali ni sad nije savršeno...

"Nešto" je prilično neodređen termin. Tako da se čovjek pita bi li bilo bolje da uopće nisi ništa napisao.

 

betmen kaže...

Idem probati instalirati PHP.

LOL Nisi shvatio što je WAMP? Windows Apache MySQL PHP. WAMP dolazi s PHP-om. Probaj jednostavno učitati neku tekstualnu datoteku umjesto te .php datoteke.

16 godina
neaktivan
offline
AJAX - undefined

Što se čudiš? Već sam 15 puta napisao da sam totalni početnik u ovome.

 

 

Tek sam sad skužio što je zapravo WAMP, i čemu služi. Napokon, sve radi.

 

Zahvaljujem.

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice