© 2013 All rights reserved.
10

Ajax: odesláni formulare pomoci GET

Ajax (Asynchronous JavaScript and XML) je označení technologie, která umožňuje měnit obsah webových stránek bez znovunačtení. V tomto článku si ukážeme jak jednoduše pomocí Ajaxu odeslat hodnoty pomocí GET.

Ajax je technologie, která za pomoci javascriptu umožňuje, aby webová stránka komunikovala se serverem bez použití znovunačtení prohlížeče.

Pomocí javascriptu je na server odeslán požadavek a od serveru je očekávána v případě úspěchu kladná odpověď.

Zde je ukázka na příkladu, který si vytvoříme:

Text:   



Jako první si vytvoříme objekt, který bude reprezenotvat http request, a přes který k němu budeme přistupovat.

Bohužel je v různých prohlížečích Ajax podporován trochu jinak.

V prohlížečích jako Firefox nebo Safari je pro ajax objekt window.XMLHttpRequest, Internet Explorer používá Microsoft.XMLHTTP.

Před použitím ajaxu musíme zjistit, který objekt může být vytvořen:

V případě že se objekt nepodařilo vytvořit, kvůli nepodpoře prohlížeče, upozorníme uživatele prostřednictvým alertu.

Pro odeslání požadavku v případě metody GET stačí použít open, která otevře spojení a přímo do ní předat URL adresu a předávané parametry. Navíc si vytvoříme funkci, která nás bude upozorňovat na změnu objektu, v našem případě hodnotu, vrácenou serverem. Tuto funkci nastavíme na onReadyStateChange, čímž dostaneme odpověď při změně:

Funkce go() bude velmi jednoduchá. Server vrací readyState, ze kterého poznáme, zda bylo odpovězeno, a podle hodnoty statusu poznáme, zda všechno proběhlo bez chyby:

Server vrací hodnotu responseText, ve které je uložena a kterou můžeme vypsat.

Pro zpracování existuje soubor run.php, který zpracuje vstupní řetězec uložený v GETu a vrátí odpověď, v tomto případě HTML kód.

Celý javascriptový kód vypadá takto:

Comments are closed for this page

A jak si mám podle Vás zobrazit zdroj PHP souboru? Ten by jste sem taky mohli dát!

Jak to myslis, zobrazit zdroj PHP souboru?

co php kód? jak se vrátí, co se má zobrazit?

PHP kod sem davat nebudu, to uz je jednoduchy, v getu mas ulozenou hodnotu, kterou jenom zpracujes a vypises co potrebujes, to se zobrazi.

Ahoj,
všiml jsem si, že i tvůj formulář neodesílá znaménko plus +. No můj scipt je podobný a taky to nejde. Čím by to mohlo být ?

Odesila se pres GET, tzn. znaminko + se neodesle. Musis udelat urlencode a urldecode.

Díky, vyzkouším to.

Díky, vyzkouším to.

Tak jsem vyzkoušel urlencode. + se do databáze zapíše ale při výpisu s použitím urldecode se opět + odstraní. Použil jsem i metodu přenosu post a doplnil

httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

a je to totéž.

Ahoj, marně se snažím doplnit kód tak, aby se poslední vzkaz ukázal druhému uživateli automaticky a né až když klikne na tlačítko. Nenapadá Vás nějaká možnost? Hledal jsem všude na webu a nemohu najít žádný příklad, aby se po změně dat na serveru automaticky změnil výpis dat všech klientů, které právě tyto data prohlížejí. Neznáte nějaký pěkný článek? Díky

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836