Cu Ajax puteti expedia date la un script de pe server prin GET si POST in aceeasi cerere. Procedeul este similar cu trimiterea datelor prin post, de fapt este la fel, fiind doar aplicat un "artificiu".
Datele din formula adresei URL (cele de tip indice=valoare) sunt recunoscute de server ca fiind trimise prin GET. Astfel, pentru a expedia date prin GET si POST in acelasi timp, se procedeaza in felul urmator:
- valorile pe care vrem sa le trimitem prin GET se adauga in adresa URL care va fi inclusa intr-o cerere de tip "POST" definita cu metoda "open()"
- iar valorile care trebuie transmise prin POST se adauga in parametrul metodei "send()".
Ca sa intelegeti mai bine, aplicati si studiati exemplul de mai jos:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ro"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" /> <title>Exemplu Ajax GET si POST simultan</title> <script type="text/javascript"> <!-- // Functia care verifica si creaza obiectul XMLHttpRequest in functie de browser function get_XmlHttp() { // Creaza variabila care va contine instanta la XMLHttpRequest, initial cu valoare nula var xmlHttp = null; if(window.XMLHttpRequest) { // Daca browser-ul e Forefox, Opera, Safari, ... xmlHttp = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Daca browser-ul este Internet Explorer xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlHttp; } // Functia care trimite datele la un fisier PHP si returneaza raspunsul function ajaxrequest(formular, tagID) { var cerere_http = get_XmlHttp(); // Apeleaza functia pt. crearea instantei la obiectul XMLHttpRequest // Creaza URL-ul cu datele care vor fi trimise prin GET (pereche nume=valoare) var url = 'get_post.php?timp='+document.getElementById('timp').innerHTML; // Creaza datele care trebuie trimise prin POST la scriptul PHP (pereche nume=valoare) var d_post = 'nume='+formular.nume.value; cerere_http.open("POST", url, true); // Creaza cererea la adresa URL setata // Adauga un Header specific pentru ca datele sa fie recunoscute ca au fost trimise prin POST cerere_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); cerere_http.send(d_post); // Trimiterea cererea, impreuna cu valorile care trebuie transmise prin POST // Verifica starea cererii // Daca raspunsul e primit complet, il transfera in eticheta HTML cu id-ul din "tagID" cerere_http.onreadystatechange = function() { if (cerere_http.readyState == 4) { document.getElementById(tagID).innerHTML = cerere_http.responseText; } } } // Functia pentru cronometrarea timpului in secunde si afisarea lui var secunde = 0; function get_secunde() { secunde++; // Incrementeaza cu o unitate // Adauga valoarea in eticheta HTML cu id="timp" document.getElementById('timp').innerHTML = secunde; } setInterval("get_secunde()", 1000) // Apeleaza functia la fiecare secunda //--> </script> </head> <body> <div id="sec"><span id="timp"> </span> secunde</div> <form action="get_post.php" method="post" name="form2" onsubmit="ajaxrequest(this, 'raspuns'); return false;"> Numele tau: <input type="text" name="nume" id="nume" size="20" maxlength="33" /> <input type="submit" value="Trimite" /> </form> <div id="raspuns"> </div> </body> </html>- Scriptul Javascript din sectiunea HEAD a documentului HTML din acest exemplu, are, pe langa functiile pentru Ajax, inca o functie, "get_secunde()" care la fiecare apelare incrementeaza cu o unitate o variabila "secunde" si o afiseaza intr-o eticheta HTML cu id="timp", iar aceasta functie este apelata cu "setInterval()" la fiecare secunda.
<input type="checkbox" name="a_name" value="value" checked="checked" />
#id { background:url("path_to_image.png"); background-size:contain; background-repeat:no-repeat; }
var rest8_7 = 8 % 7; alert(rest8_7);
$nr = ceil(3.5); echo $nr; // 4
Alex wants to buy a bike. - Alex vrea sa cumpere o bicicleta.
LeĆ unos libros. - Am citit niste carti.