| 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: 14 let
|
|||
0