[JQuery] Odeslání formuláře

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod nofire 15. 9. 2016 13:29

Zdravím, můžete mi prosím někdo poradit ?
Snažím se odeslat data z formuláře a to tak abych zůstal na stránce s formulářem, do který se vrátí aktualizovaný data. Zapisuju do tabulky v databázi - to v pohodě chodí, ale nedokážu vrátit data do divu, kde jsou data. Soubor main.asp s formulářem a DIVem vypadá zhruba takhle:
Kód: Vybrat vše
//script k odeslání formuláře:

$("form").submit(function() {
  $.post("ulozit.asp", $(this).serialize(), function(vystup) {
    $("#data").html(vystup);
  });
});
.
.
.
<form action="ulozit.asp" method="post" name="mbform" id="mbform">
...tady jsou prvky formuláře...

a tady pod nimi je div kde se zobrazují data z tabulky a ty bych chtěl aktualizovat po odeslání formuláře.

<div id="data" ></div>


Soubor ulozit.asp vypadá zhruba takhle:
Kód: Vybrat vše
INSERT INTO tabulka (mb_datum,mb_klient,.....

SELECT * FROM tabulka


po uložení, který proběhne OK vyberu data z tabulky, který chci vrátit na stránku main.asp do divu "data". Data vyberu taky v pohodě, ale zobrazí se mi na stránce ulozit.asp a já je chci vrátit zpět na stránku main.asp do divu "data". Jde to vůbec udělat ?

Díky za pomoc
Ve víně je pravda... ale ve kterém ? Stále ho hledám.
nofire
Junior
Uživatelský avatar

Odeslat příspěvekod Just_jo 15. 9. 2016 19:22

Máš někde v JS použito event.preventDefault? Aby se nespustilo odeslání formu
Just_jo
Junior
Uživatelský avatar

Odeslat příspěvekod nofire 16. 9. 2016 06:03

Díky, ale já ten form potřebuju odeslat. Fakt už nevím jak to udělat. Tlačítko, kterým to odesílámám není typ "submit", ale "button", chytám se na jeho ID a posílám tím form ke kontrole, takže celý to pak vypadá asi takhle:
Kód: Vybrat vše
$('#ulozit').click(function () { //kontrola formuláře
    if ($.trim($('#datOD').val())  === '') {
        alert('Není vyplněn datum akce.');
        return false;
       }
     else if ($.trim($('#casOD').val())  === '') {
        alert('Není vyplněn čas začátku akce.');
        $("#casOD").focus();
        return false;
        }
     else if ($.trim($('#casDO').val())  === '') {
        alert('Není vyplněn čas konce akce.');
        $("#casDO").focus();
        return false;
        }
     else if ($.trim($('#misto').val())  === '') {
        alert('Není vyplněno místo konání akce.');
        $("#misto").focus();
        return false;
        }
     else if ($.trim($('#zadavatel').val())  === '') {
        alert('Není vyplněn zadavatel akce.');
        $("#zadavatel").focus();
        return false;
        }
     else {   $("#mbform").submit(); }
   }); 
   
   //------------------ ODESLÁNÍ FORMU --------------------
   $("form").submit(function() {
  $.post("ulozit.asp", $(this).serialize(), function(vystup) {
    $("#data").html(vystup);
  });
});


kam by tedy bylo nejlepší ten event.preventDefault dát ?

Díky
Ve víně je pravda... ale ve kterém ? Stále ho hledám.
nofire
Junior
Uživatelský avatar

Odeslat příspěvekod Just_jo 18. 9. 2016 05:39

Jen se zeptám - proč to odesíláš přes $.post a následně to opět pošleš na ten samý skript pomocí html?
V odkaze na event.preventDefault je přímo příklad použití.
Just_jo
Junior
Uživatelský avatar

Odeslat příspěvekod nofire 18. 9. 2016 16:22

Ahoj, jestli myslíš tohle : "$("#data").html(vystup);", tak to si do DIVu #data posílám výsledek dotazu ve formátu HTML , který mi přijde ze stránky ulozit.asp.

Ahoj
Ve víně je pravda... ale ve kterém ? Stále ho hledám.
nofire
Junior
Uživatelský avatar

Odeslat příspěvekod Just_jo 19. 9. 2016 05:46

Tak nic - mýlka názvů tlačítek.
Každopádně by asi stačilo změnit poslední ELSE. Není nutné dávat submit, když tam jde napsat rovnou $.POST.

Jen drobnost - používáš u jQuery jako první věc $( document ).ready ?
Just_jo
Junior
Uživatelský avatar

Odeslat příspěvekod nofire 19. 9. 2016 06:01

Jasně používám $( document ).ready . Tohle je jen výřez dlouhýho kódu.

Ahoj
Ve víně je pravda... ale ve kterém ? Stále ho hledám.
nofire
Junior
Uživatelský avatar

Odeslat příspěvekod Just_jo 19. 9. 2016 06:23

Tak změň toto
Kód: Vybrat vše
else {   $("#mbform").submit(); }

na toto
Kód: Vybrat vše
else {
   $.post("ulozit.asp", $(this).serialize(), function(vystup)
   { $("#data").html(vystup); } );
}
Just_jo
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků