IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Ajax, fomulář

Aktivity
Avatar
done
Člen
Avatar
done:6.11.2013 9:59

Ahoj, prosím o pomoc s tímto:
mám sestavený formulář pro registraci, javascript pro ověření hodnot a php script pro odeslání do databáze. Potřeboval bych, aby se mi při kliknutí na odesílací tlačítko přes Ajax provedl ten php script a aby nedošlo k obnovení stránky, tedy aby ten Ajax předal hodnoty php scriptu a ten se provedl.
Je to možné udělat ?

 
Odpovědět
6.11.2013 9:59
Avatar
perteus
Člen
Avatar
perteus:6.11.2013 10:36

Ahoj, radi ti pomuzeme, ale neprilozil jsi nic z toho co mas. Tak prosim o ukazku kodu jak se to pokousis resit a pripadne i napsani jestli ti to konci na nejake chybe a jake.

Mozne to samozrejme je, treba pres jquery je to pomerne trivialni zalezitost :-)

 
Nahoru Odpovědět
6.11.2013 10:36
Avatar
user
Tvůrce
Avatar
Odpovídá na done
user:6.11.2013 10:40

http://api.jquery.com/jQuery.ajax/

Jquery má metodu .ajax({option_na­me:option:valu­e}) viz dokumentace:

$(document).on("submit", "#form_id", function(){
    $.ajax({options}); // ajax call
    return false; // Canceling classic form submit
});
Editováno 6.11.2013 10:40
 
Nahoru Odpovědět
6.11.2013 10:40
Avatar
done
Člen
Avatar
Odpovídá na perteus
done:6.11.2013 10:49

No, myslím něco takového

function posli(){ jQuery.ajax({
    url: "registrace.php",
    type: "POST",
    data: "name,email,pass",
    cache: false,
    dataType: "xml";
}); }

Nejsem si ale jistý, jak to funguje.

 
Nahoru Odpovědět
6.11.2013 10:49
Avatar
done
Člen
Avatar
Odpovídá na perteus
done:6.11.2013 10:49

Jinak pak mám normální HTML formulář + PHP na ukládání do databáze.

Editováno 6.11.2013 10:49
 
Nahoru Odpovědět
6.11.2013 10:49
Avatar
done
Člen
Avatar
Odpovídá na user
done:6.11.2013 10:51

Díky, ale nevíš jaké hodnoty mají být v options ?

 
Nahoru Odpovědět
6.11.2013 10:51
Avatar
user
Tvůrce
Avatar
Odpovídá na done
user:6.11.2013 11:10

To máš uvedeno v dokumentaci. Nicméně, z tvé ukázky vyplývá, že si nevíš rady s odesláním dat.

dataType - definuje jakou odezvu od serveru očekáváš, tzn. v tvém případě nejspíše html.
data - můžeš například vkládat ve formátu objektu: {password:valu­e,..atd}
kde password je hodnota pod kterou budeš mít data na serveru dostupná... tzn.: $_POST["password"] // = value

Pokud posíláš ajax požadavky na server, není možné na serveru ve scriptu přesměrovávat, jak je to po úspěšném zpracování formuláře běžné...

 
Nahoru Odpovědět
6.11.2013 11:10
Avatar
user
Tvůrce
Avatar
Odpovídá na done
user:6.11.2013 11:24

Samozřejmě máš k dyspozici callback funkce success/error:

$(document).on("submit", "#form_id", function(){
    $.ajax({ // ajax call
       success : function (responce){}, // responce = například tvoje html
       error : function(){}
    });
});
 
Nahoru Odpovědět
6.11.2013 11:24
Avatar
done
Člen
Avatar
Odpovídá na user
done:6.11.2013 11:29

Ok, moc díky.

 
Nahoru Odpovědět
6.11.2013 11:29
Avatar
user
Tvůrce
Avatar
Odpovídá na done
user:6.11.2013 12:07

Za málo...

 
Nahoru Odpovědět
6.11.2013 12:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.