Autor | Zpráva | ||
---|---|---|---|
DarkKnight Profil |
Zdravím,
vytvářím webovou stránku, kde chci udělat formulář, který by se odesílal bez refresh. Jedná se o zápis dat z formuláře do MySql databáze. Zkoušel jsem vyhledat na googlu něco o odesílání pomocí ajaxu, bohužel to s ním neumím. Přes GET to nepůjde, na to je to až moc dlouhé... Máte s tímto problémem někdo zkušenosti? Předem díky. |
||
shaggy Profil |
#2 · Zasláno: 14. 7. 2013, 18:04:12
Nerozumiem ti, čo je to reflex? Myslíš refresh?
Ak chceš odoslať formulár bez znovunačítania stránky, tak jediná možnosť bude ajax. Je úplne jedno, či dáta odosielaš cez GET alebo POST, to na to nemá vplyv (refresh prebehne tak či tak). |
||
Chamurappi Profil |
#3 · Zasláno: 14. 7. 2013, 18:04:39
Reaguji na DarkKnighta:
Jak ten formulář vypadá? Některé věci odeslat AJAXem ani dost dobře nejdou (třeba upload souboru). Úplně nejjednodušší a nejspolehlivější je namířit odeslání formuláře do jiného rámu (může to být klidně skrytý <iframe> ).
„bez reflexu“ Reflex je odpověď organismu na vnější podnět. Je fakt, že při určitém úhlu pohledu by se standardní odeslání formuláře dalo považovat za reflex :-) |
||
DarkKnight Profil |
#4 · Zasláno: 14. 7. 2013, 20:11:11 · Upravil/a: DarkKnight
Pravda, špatně jsem to napsal. Jinak jedná se o textový input a select. Je to vlastně chat...
Chamurppi, a jak by to šlo udělat pomocí těch rámů? |
||
Micruss Profil |
#5 · Zasláno: 14. 7. 2013, 21:46:45
uděláš formulář a pošleš ho na skrytej rám
|
||
DarkKnight Profil |
#6 · Zasláno: 14. 7. 2013, 23:01:06
no vlastně některé prohlížeče je nepodporují, takže se asi vrátím k ajaxu...
|
||
Chamurappi Profil |
#7 · Zasláno: 14. 7. 2013, 23:23:12
Reaguji na DarkKnighta:
Cože? Které? AJAX má slabší podporu než rámy, ale obojí je podporované velmi dobře. „a jak by to šlo udělat pomocí těch rámů?“ Atribut target znáš? Může ho mít i <form> .
Jak by se to dělalo AJAXem? Nejprve si napíšeme universální funkci na POSTování: function odesli(url, data, callback) { var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); xhr.onreadystatechange = function() { if(xhr.readyState == 4) callback(xhr.responseText); }; var postData = []; for(var n in data) postData.push(encodeURIComponent(n) + "=" + encodeURIComponent(data[n])); xhr.send(postData.join("&")); } odesli("chat.php", { zprava: document.jménoFormuláře.jménoInputu.value }, function(data) { document.getElementById("chat").innerHTML = data; }); |
||
Časová prodleva: 11 let
|
0