Comunitatea PHP Romania
MightyDeals

Prima pagină Web Librarii Javascript problema JS + AJAX

problema JS + AJAX

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library, Ext, script.aculo.us

Mesaj Mie Iun 25, 2008 9:56 am
cristiluc PHPRomania Supporter

Mesaje: 18
salut.. daca am gresit aria, imi cer scuze
incerc sa apelez dintr-o functie in Javascript o functie de traducere facuta cu AJAX
problema e ca la apelare nu trece de onSuccess, deci nu imi returneaza traducerea..
insa dupa ce se executa toate functiile, revine in functia de traducere si abia atunci intra in blocul onSuccess

nu reusesc sa inteleg de ce intra de 2 ori in functia de traducere, si doar a 2a oara da si un rezultat corect
mentionez ca sunt incepator in domeniu
va multumesc anticipat

Mesaj Mie Iun 25, 2008 4:26 pm
Amenthes Avatar utilizator
Senior Member

Mesaje: 1370

O bucata de cod,... ceva?

Mesaj Mie Iun 25, 2008 4:38 pm
cristiluc PHPRomania Supporter

Mesaje: 18
nu pot pune nici o bucata de cod pt ca azi mi-am facut user ul si nu am inca 5 posturi :(

Mesaj Mie Iun 25, 2008 4:48 pm
Birkoff Avatar utilizator
Senior Member

Mesaje: 5884
Localitate: Bucuresti

nu poti pune linkuri, dar cod poti... verifica sa nu ai http sau www in cod... inainte sa il pui aici... eventual desparte w w w sau h t t p...

Mesaj Mie Iun 25, 2008 4:51 pm
cristiluc PHPRomania Supporter

Mesaje: 18
asta e codul functiei:

function _translate(_untranslated) {

var u r l = "";

new Ajax.Request(u r l, {
method: 'g e t',
onSuccess: function(transport) {
_trans = transport.responseText.evalJSON();
_translated = _trans[0].translated;

if ("" == _translated) {
_translated = _untranslated;
}
}
});
return _translated;
}

nu intra niciodata in functia transport, deci nu trece de onSuccess
are cineva vreo idee de ce? :(

Mesaj Joi Iun 26, 2008 8:47 am
mihaitha Avatar utilizator
Senior Member

Mesaje: 2346
Localitate: Sibiu
Poate e o problema in implementarea clasei Ajax sau a metodei Request()... N-ai cum sa verifici readyState sau responseHeader sa vezi pana unde avanseaza sau ce raspuns primeste? Poate nu se acceseaza url cum trebuie... :-??
Arguing with retards is like playing chess with a pigeon: no matter how good you are at chess, the pigeon is just going to knock over the pieces, crap on the board and strut around like it's victorious.

Mesaj Joi Iun 26, 2008 10:28 am
Amenthes Avatar utilizator
Senior Member

Mesaje: 1370

Esti sigur ca URL-ul nu returneaza 404?

Nu am folosit niciodata prototype asa ca poate ma insel, insa potrivit documentatiei onSuccess e apelata doar daca serverul returneaza un Status de tipul 2xy.

Instaleaza-ti Firebug in Firefox si vezi ce raspuns primesti de la server in urma requestului. Alternativ ai putea adauga inca un callback in optiunile de initializare: onFailure(), in care sa ai un alert, ceva.

Mesaj Joi Iun 26, 2008 10:41 am
cristiluc PHPRomania Supporter

Mesaje: 18
am firebug instalat, insa unde pot vedea ce returneaza U R L-ul, adica 404 sau 2xy?

Mesaj Joi Iun 26, 2008 10:42 am
kleampa Avatar utilizator
Senior Member

Mesaje: 2775
Localitate: Bucuresti

deschizi firebugul si dai pe primul tab din stanga numit "console"

Mesaj Joi Iun 26, 2008 10:50 am
cristiluc PHPRomania Supporter

Mesaje: 18
m-am uitat acolo si arata cam asa:

Response Headers
Date Thu, 26 Jun 2008 08:43:04 GMT
Server Apache/2.2.6 (Fedora)
X-Powered-By PHP/5.1.6
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Content-Length 31
Connection close
Content-Type text/html; charset=UTF-8
Request Headers
Host ......
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Accept text/javascript, text/html, application/xml, text/xml, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
X-Requested-With XMLH t t p Request
X-Prototype-Version 1.6.0.2

te rog sa arunci o privire, poate iti dai seama de problema.. multumesc mult pt ajutor

Mesaj Joi Iun 26, 2008 11:16 am
Amenthes Avatar utilizator
Senior Member

Mesaje: 1370

Stai ca acum mi-am dat eu seama ce crezi tu ca nu merge. Adica merge dar nu cand vrei tu...

Tu ai asa:

function _translate(_untranslated) {

    var url = "";

    new Ajax.Request(u r l, {
        method: 'get',
        onSuccess: function(transport) {
            _trans = transport.responseText.evalJSON();
            _translated = _trans[0].translated;

            if ("" == _translated) {
                _translated = _untranslated;
            }
        }
    });
   
    return _translated;
}


Problema e ca tu returnezi _translated, insa in momentul in care tu faci return Ajax inca nu a terminat apelul catre server, parsarea si verificarile din callback-ul onSuccess, adica onSuccess e intradevar executata dupa ce faci tu return (sau mai bine zis nu stii niciodata cand e executata, poate fi inainte, poate fi dupa) si de fapt tocmai asta e interesant la Ajax, e asincron. Tu poti face alte lucruri cat timp isi face el treaba. Ceea ce poti tu face insa, e sa ai in interiorul onSuccess ceva de genul:

HTMLElement.innerHTML = _translated;

Mesaj Joi Iun 26, 2008 11:59 am
mihaitha Avatar utilizator
Senior Member

Mesaje: 2346
Localitate: Sibiu
Bravo, Amenthes-Ochi-de-Vultur :)

cristiluc, vezi ce se intampla cand nu acorzi putin atentie modului in care postezi. Eu unul, si sunt sigur ca si ceilalti care s-au mai dat cu parerea pe aici (cu exceptia lui Amenthes desigur) nu m-am chinuit sa citesc exact ce face functia, pentru ca in modul in care ai postat-o imi era foarte greu. Nu zic ca mi-as fi dat seama din prima de problema, dar ar fi fost si asta o posibilitate.

Deci data viitoare cand postezi cod, fa-o cum a facut-o Amenthes: intr-un bloc [code][/code], si indentat frumos.

Sporuri in continuare.
Arguing with retards is like playing chess with a pigeon: no matter how good you are at chess, the pigeon is just going to knock over the pieces, crap on the board and strut around like it's victorious.

Mesaj Joi Iun 26, 2008 2:14 pm
cristiluc PHPRomania Supporter

Mesaje: 18
va multumesc mult pt ajutor.. aveti dreptate, data viitoare o sa pun codul intr-o maniera inteligibila.. asa vroiam sa fac si acum dar imi tot dadea eroare spunandu-mi ca sunt nou pe forum, si cand am reusit sa il fac sa mearga, am uitat sa il indentez
ms mult inca o data

Mesaj Joi Iun 26, 2008 2:15 pm
Amenthes Avatar utilizator
Senior Member

Mesaje: 1370

Bravo, Amenthes-Ochi-de-Vultur :)


Saru'mana :wink:

Mesaj Dum Apr 14, 2013 12:55 am
Google Bot New Member

Mesaje: 1

Înapoi la Librarii Javascript

Copyright © 2001-2013 PHP Romania Gazduire web | Haine online | Gazduire web | Campanii SMS | Gazduire Claus Web | Inregistrare Domenii | Anunturi | Jocuri cu bile
Furnizat de phpBB® Forum Software © phpBB Group
Translation/Traducere: phpBB România
Powered by Simplis