Ro:Tutorial:Învaţă xajax în 10 minute






Ro:Tutorial:Învaţă xajax în 10 minute

Traduceri disponibile şi în: Engleză, Spaniolă, Japoneză, Rusă, Chineză, Germană

[edit] Folosire xajax într-un script PHP

xajax e construit astfel încât să fie extrem de uşor de implementat atât în aplicaţii web existente cât şi în proiecte noi. Puteţi adăuga funcţionalitatea puternică xajax aproape oricărui script PHP în şapte paşi simpli:

  1. Includeţi librăria de clase xajax:
    require_once("xajax.inc.php");
    
  2. Instanţiaţi obiectul xajax:
    $xajax = new xajax();
    
  3. Înregistraţi numele funcţiilor PHP care doriţi să le puteţi apela folosind xajax:
    $xajax->registerFunction("myFunction");
    
  4. Scrieţi funcţiile PHP pe care tocmai le-aţi înregistrat şi folosiţi obiectul xajaxResponse pentru a returna comenzi XML din funcţiile respective:
    function myFunction($arg)
    {
        // faceţi ceva operaţii în funcţie de argumentul $arg cum ar fi un query în baza de date
        // şi puneţi rezultatul într-o variabilă ca $newContent
        
        // Instanţaţi obiectul xajaxResponse
        $objResponse = new xajaxResponse();
        
        // adăugaţi o comandă răspunsului ca să asigneze valoarea atributului innerHTML
        // al elementului cu id="SomeElementId" la ceea ce am returnat in noul conţinut
        $objResponse->addAssign("SomeElementId","innerHTML"$newContent);
        
        //returnăm obiectul xajaxResponse
        return $objResponse;
    }
    
  5. Înainte ca scriptul dumneavoastră să trimită browserului orice conţinut, setaţi xajax să proceseze toate cererile:
    $xajax->processRequests();
    
  6. Între tagurile <head></head> , setaţi xajax să genereze codul Javascript necesar:
    <?php $xajax->printJavascript(); ?>
  7. Apelaţi funcţia înregistrată dintr-un eveniment Javascript sau o funcţie din aplicaţia dumneavoastră:
    <div id="SomeElementId"></div>
    <button onclick="xajax_myFunction(SomeArgument);">
    

Asta e tot. xajax se ocupă de restul. Marea dumneavoastră preocupare va fi acum sa scrieţi funcţiile PHP şi să returnaţi răspunsurile XML xajax din ele-- operaţie care se face foarte uşor cu ajutorul claseixajaxResponse.

[edit] Cum modific conţinutul meu asincron?

Poate că unul din atributele unice ale pachetului xajax este clasa xajaxResponse. Alte librării Ajax presupun să scrieţi propriile handlere de funcţii în Javascript pentru a procesa şi modifica datele returnate dintr-o cerere asincronă. Pe de altă parte, xajax vă permite să controlaţi uşor conţinutul din PHP. Clasa xajaxResponse vă permite să creaţi instrucţiuni XML pe care să le trimiteţi aplicaţiei din funcţiile dumneavoastră PHP. Conţinutul XML e trimis de pompa de mesaje xajax şi instrucţiunile îi spun pachetului xajax cum să modifice conţinutul şi starea aplicaţiei dumneavoastră. Momentat clasa xajaxResponse oferă câteva comenzi utile, cum ar fi Assign, care setează atributul specificat al unui element din pagină; Append, care adaugă informaţiile la sfârşitul atributului specificat al unui element din pagină; Prepend, care adaugă informaţiile la inceputul unui atribut specificat al unui element din pagină; Replace, care caută după şi înlocuieşte informaţiile atributului specificat dintr-un element al paginii dumneavoastră; Script, care rulează codul JavaScript specificat; şi Alert, care arată o căsuţă cu un mesaj de alertă specificat.

Un singur răspuns XML poate conţine multiple comenzi, care vor fi executate în ordinea în care au fost adăugate răspunsului. De exemplu, să zicem că un user face click pe un buton în aplicaţia dumneavoastră. Evenimentul onclick apelează wrapperul JavaScript pentru o funcţie PHP. Acel wrapper trimite o cerere asincronă la server folosind un XMLHttpRequest funcţia PHP fiind apelată de xajax. Funcţia PHP face o căutare în baza de date, ceva manipulări de date, sau serializări. Clasa xajaxResponse se foloseşte pentru a genera un răspuns XML conţinând multiple comenzi care să fie retrimise pompei de mesaje xajax pentru a fi executate:

$objResponse = new xajaxResponse();
$objResponse->addAssign("myInput1","value",$DataFromDatabase);
$objResponse->addAssign("myInput1","style.color","red");
$objResponse->addAppend("myDiv1","innerHTML",$DataFromDatabase2);
$objResponse->addPrepend("myDiv2","innerHTML",$DataFromDatabase3);
$objResponse->addReplace("myDiv3","innerHTML","xajax","<strong>xajax</strong>");
$objResponse->addScript("var x = prompt(\"Enter Your Name\");");
return $objResponse;

Pompa de mesaje xajax ar transmite mesajul XML şi executa următoarele:

  • valoarea elementului cu id myInput1 va fi asignată informaţiei din $DataFromDatabase.
  • culoarea textului pentru elementul cu id myInput1 va fi schimbată în roşu.
  • Informaţiile din $DataFromDatabase2 vor fi apendate elementului cu id myDiv1 folosind innerHTML.
  • Informaţiile din $DataFromDatabase3 vor fi adăugate la începutul elementului cu id myDiv2 folosind innerHTML.
  • Toate apariţiile cuvântului "xajax" în atributul innerHTML al elementului cu id myDiv3 vor fi înlocuite cu "xajax"; fapt ce va transforma toate instanţele cuvântului xajax în acelaşi text, dar îngroşat.
  • Un mesaj prompt va fi afişat cerând userului numele şi valoarea introdusă va fi setată într-o variabilă javascript numită x.

Toate acestea sunt implementate pe partea de server în funcţia PHP prin formarea şi returnarea unui răspuns XML xajax.

[edit] Dar staţi, asta nu e tot!

Continuaţi cu Procesarea Formularelor folosind xajax