Autor | Zpráva | ||
---|---|---|---|
theNookyn Profil |
#1 · Zasláno: 15. 5. 2012, 17:54:08
Vytvářím si script pro komentáře pomocí jQuery a AJAXu, ale nevím jak mám vrátit obsah PHP souboru.
$(document).ready(function(){ $("input.odeslat").click(function(){ if(!$("input.jmeno").val()=="" & !$("input.email").val()=="" & !$("textarea.prispevek").val()==""){ $.post("php/comments/process.php", {jmeno: $("input.jmeno").val(), email: $("input.email"), prispevek: $("textarea.prispevek").val()}); }else{ alert("Musíte vyplnit všechna pole!"); } }); }); Pomocí $.post("php/comments/process.php", {jmeno: $("input.jmeno").val(), email: $("input.email"), prispevek: $("textarea.prispevek").val()}); Já ty data odešlu do souboru process.php a v něm mám vloženo: print $_POST["jmeno"]; A nevím jak to vypsat na původní stránku. Jinak se chci zeptat jestli v jQuery neexistuje něco jako "empty" (v PHP) pro podmínky. |
||
DJ Miky Profil |
Jako třetí parametr
$.post() přidej callback, tomu je v parametru předán obsah vrácené stránky, viz http://api.jquery.com/jQuery.post/.
|
||
theNookyn Profil |
#3 · Zasláno: 15. 5. 2012, 18:20:51
Díky funguje:
$(document).ready(function(){ $("input.odeslat").click(function(){ var jmeno = $("input.jmeno").val(); var email = $("input.email").val(); var prispevek = $("textarea.prispevek").val(); if(!$("input.jmeno").val()=="" & !$("input.email").val()=="" & !$("textarea.prispevek").val()==""){ $.post("php/comments/process.php", { jmeno: jmeno, email: email, prispevek: prispevek }, function(data){ $("div#vysledek").html(data); }); }else{ alert("Musíte vyplnit všechna pole!"); } }); }); Akorát když jsem zkoušel do druhého parametru zadat { jmeno: $("input.jmeno").val(), email: $("input.email").val(), prispevek: $("textarea.prispevek").val() }, tak to nefungovalo :/. |
||
pcmanik Profil |
theNookyn:
Myslim ze lepsie bude v tvojom pripade pripojit udalost submit na cely formular. Ak sa udalost spusti, tak zavolas return false; aby sa neodoslal formular normalnou cestou, ale cez ajax. Aby si nemusel vypisovat vsetky polia, staci ti zavolat $(this).serialize(); Teda nieco taketo: $(function(){ $('#id_formulara').submit(function() { if ($("input.jmeno").val() != "" & $("input.email").val() != "" & $("textarea.prispevek").val() != ""){ $.post('php/comments/process.php', $(this).serialize(), function(data) { $("div#vysledek").html(data); }); } else alert("Musíte vyplnit všechna pole!"); return false; }); }); PS: Nezabudni na overenie na strane servera, ci v tych premennych skutocne nieco je. |
||
theNookyn Profil |
#5 · Zasláno: 15. 5. 2012, 20:55:00
A proč je lepší připojit submit, místo přidání události na button tlačítko?
|
||
Radek9 Profil |
#6 · Zasláno: 15. 5. 2012, 20:56:03
theNookyn:
Protože ta událost na tlačítku se nespustí, pokud uživatel stiskne enter. |
||
theNookyn Profil |
#7 · Zasláno: 15. 5. 2012, 21:01:03
pcmanik:
Data se budou ještě ověřovat a ošetřovat před vstupem do databáze, takže dobrý. Radek9: Taky pravda. |
||
_es Profil |
#8 · Zasláno: 15. 5. 2012, 21:01:59
theNookyn:
„A proč je lepší připojit submit, místo přidání události na button tlačítko?“ Pretože to je udalosť priamo na to určená, „udalosť odoslania formulára“, a formulár sa dá odoslať aj inak ako kliknutím na tlačítko myšou, trebárs aj cez klávesnicu. |
||
Časová prodleva: 12 let
|
0