Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][jQuery] Odświeżanie strony
Forum PHP.pl > Forum > Przedszkole
Tomplus
Witam,

Napisałem wcześniej temat z zapytaniem bardziej skomplikowanym, dlatego teraz piszę prosto:

Jak zrobić w jednym formularzu o ID='ZAPISZDANE' który jest obsługiwany przez jQuery aby jeden elementów typu SUBMIT wykonywał się wykorzystania funkcji jQuery

  1. <button type='submit' name='wartosc[]'> -> przeslanie danych .ajax
  2. <button type='submit' name='wartosc[]'> -> przeslanie danych .ajax
  3. <button type='submit' name='wartosc[]'> -> przeslanie danych .ajax
  4. <input type='submit' name='zapisz'> -> wyslanie tradycyjne (wysyła dane j.w.)


Czy ktoś mi pomoże rozwiązać ten problem ? Potrzebuje aby odświeżyć całą stronę.
melkorm
Kod
if( $(this).attr('name') == 'zapisz' ) {
$(this).parents('form').first().submit();
return false;
}


na początki akcji dla submitów.

Jeżeli nie zadziała pokaż kod.

P.S. Nie podchodzi to przypadkiem pod dublowanie tematów?
Tomplus
Podchodzi to pod dublowanie, ale jeżeli zapytanie jest zbyt skomplikowane, to trzeba zapytać raz jeszcze. Starego tematu nie da się usunąć niestety.



Kod jest taki:

  1.  
  2. <script type="text/javascript">
  3. \$(document).ready( function(){
  4. var submitButton = '';
  5. var valueButton = '';
  6. var submitInput = false;
  7. \$('#ZapiszDane button').click(function() {
  8. submitButton = \$(this).attr('name');
  9. valueButton = \$(this).attr('value');
  10. });
  11.  
  12. \$('#ZapiszDane').submit(function() {
  13. var params = submitButton + '=' + valueButton + '&js=1&' + \$('#ZapiszDane').serialize();
  14. \$.post('zapiszsklad.ob', params, function(json) {
  15. {$json}
  16. var obj = jQuery.parseJSON(json);
  17. /* TRESC */
  18.  
  19. });
  20. return false;
  21. });
  22. })
  23. </script>
  24.  



Twoja funkcja ma maly szkopul, bo odczytuje ze jeżeliw formularzu jest name='zapisz' to wykona formularz
melkorm
zamiast
$(this).attr('name') daj submitButton, bo w nim przechowujesz nazwę klikniętego buttona, jeżeli nazwa jest zapisz => to zrób return true i wtedy formularz wyśle się normalnie.

I nie szkopuł tylko jakbyś nie zauważył to bez kodu mogłem tylko wróżyć z fusów
Tomplus
nie nie... to jeżeli kliknę <button>

a ja klikam <INPTU type='submit'>

stworzyłem funkcje analogiczną do button.click ale nie dziala.

  1. \$('#ZapiszDane input[type="submit"]').click(function() {
  2. \$(this).parents('#ZapiszDane').first().submit();
  3. return false;
  4. }
  5. });

melkorm
Kod
$('#ZapiszDane button').click(function() {
            submitButton = $(this).attr('name');
            valueButton = $(this).attr('value');



                var params =  submitButton + '=' + valueButton + '&js=1&' + \$('#ZapiszDane').serialize();
                \$.post('zapiszsklad.ob', params, function(json) {
                    {$json}
                    var obj = jQuery.parseJSON(json);
                    /* TRESC */

                });
            return false;
            });


Po prostu nie nadpisuj akcji submit formularza.
Tomplus
Dziękuje Ci bardzo,

po prostu zamiast kombinować ze skryptem tworząc kolejne funkcje, wystarczył usunąć zbędny kod i cel osiągnięty.

Buttony wysyłają dane korzystając z Ajaxa, a Inputy tradycyjną metodą Post.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.