Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][jQuery] Odświeżanie strony
Tomplus
post
Post #1





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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ę.
Go to the top of the page
+Quote Post
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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?

Ten post edytował melkorm 15.05.2011, 15:15:02
Go to the top of the page
+Quote Post
Tomplus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
melkorm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Tomplus
post
Post #5





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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. });

Go to the top of the page
+Quote Post
melkorm
post
Post #6





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Tomplus
post
Post #7





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:20