Autor Zpráva
Senky
Profil
Zdavim, potreboval by som odoslat formular bez toho, aby sa znovu nacitala stranka. Rozhodol som sa pre jQuery a jeho $get, avsak netusim ako by som moho premenne zadat vo formulary a az potom ich odoslat. Skusil som pouzit funkciu onsubmit aj onclick, ale obidve mi odoslali formular klasicky na zadanu stranku co ja nechem. Vedel by mi niekto pomoct? Dakujem.
srigi
Profil
Musis si napisat funkciu onsubmit, v nej vykonat vsetky potrebne cinnosti spojene s obsluhou AJAXu a nakoniec vratit false (cim sa zablokuje odoslanie formu klasickou cestou).
Senky
Profil
Uf tak to mi velmi nepomohlo, mohol by si to nejako priblizit? To s tym return false chapem, ale nejde mi do hlavy ako dostat do $.get tie premenne...
srigi
Profil
Senky
Uf, postnem sem nie prave kratky kod z mojej nedavnej aplikacie. Trocha som to osekal, aby to bolo citatelne volnym okom :) . IMHO by malo stacit prepisat metodu poziadavku na GET. Dufam, ze pomoze:
$('#commentForm').submit(function(){
    var comment_text = $('textarea').val();
    var author       = $('input[name=author]').val();

    $('#informator')
      .html('<img src="loader.gif" /><span>Wait...</span><div class="cleaner" />');

    $('#informator').show(250, function(){
        $.ajax({
            type: "POST",
            url: "server.php",
            data: "comment_text=" + comment_text + "&author=" + author + "&submit=true",
            timeout: 5000,

            success: function(msg){
                $('#informator span, #informator img').fadeOut(250, function(){
                    $('#informator')
                      .html('<img src="ok.gif" /><span>Comment saved</span><div class="cleaner" />');
                });

                $('#informator span, #informator img').fadeIn();

                timer = setTimeout(function(){
                    $('#informator').hide(250);
                }, 3500);
            },

            error: function(XMLHTTP, textstatus){
                switch (textstatus) {
                    case 'timeout':
                        alert('Server timeout!');
                        break;

                    case 'error':
                        alert(XMLHTTP.responseText);
                        break;
                }
            }
        });
    });

    return false;
});
Senky
Profil
Fuuha, dakujem, vyskusam to....
Senky
Profil
No takze vyskusal som to a spravil som toto:

jquery.js
// cele jquery.js a este toto:
$('#newMessage').submit(function(){
  var odkaz = $('input[name=odkaz]').val();
  var newMessage = $('input[name=newMessage]').val();
    $.ajax({
      type: "POST",
      url: "process.php",
      data: "odkaz=" + odkaz + "&newMessage=" + newMessage,
      timeout: 5000,
      success: return false;
    },
  return false;
}


chat.php
<form action="" method="post" id="newMessage">
<strong>Správa:</strong>
<input type="text" name="odkaz">
<input type="hidden" name="newMessage" value="1">
<input type="Submit" name="Uložit" value="Poslat">
</form>


Tak a je tu nieco zle? Lebo mi to nefunguje...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: