Autor Zpráva
hugo123
Profil *
Ahojte,

mam jednoduchy formular, kde sa zadava e-mail a sprava, potom je tam button. A ja chcem, ked pouzivatel klikne na button, tak sa formular schova, odosle sa a napise sa hlaska.

Mna zaujima, ako sa da cez jQuery odoslat formular bez potreby znovunacitania stranky. Totizto netusim, ako ziskat obsah z tych formularov a nasledne sa vykona v pozadi nejaky skriptik.

Viete mi prosim poradit?

Vopred dakujem velmi pekne.
Kubo2_
Profil *
hugo123:
Po prvé, prejav prosím trocha vlastnej snahy a ukáž, čo už máš (tj. živá ukážka). Po druhé, píš prosím s diakritikou.

ako sa da cez jQuery odoslat formular bez potreby znovunacitania stranky
To nie je funkcionalita objektu jQuery, nazýva sa to AJAX a je to implementované natívnym JavaScriptom. Vieš vôbec, čo je to v skutočnosti jQuery?
sniclman
Profil *
function odeslat_formular(){
var httpRequest = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

httpRequest.open("POST", 'tvuj_php_soubor_co_zpracuje_data.php', true);
httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpRequest.onreadystatechange= function(){
if (httpRequest.readyState == 4){
if(httpRequest.status == 200){/*akce po dokončení práce v PHP souboru*/alert('PHP hotovo.');}
else{
if(httpRequest.status != 0){alert(httpRequest.status +":"+ httpRequest.statusText);}}}}
httpRequest.send("promena1=hodnota1&promena2=hodnota2");}

promena1/2 je nějaký input (např.: předmět, odesílatel atd).
na nějaké tlačítko nastavíš onClick="odeslat_formular()"

pro odesílání dlouhých textů je lepší použít metodu POST. Pokud bych tam měl někde tak mě prosím opravte.

Získání dat z inputů už zvládneš doufám.
hugo123
Profil *
sniclman:

Dakujem velmi pekne! ;-)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0