Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [AJAX]Okno dialog i problem z submitem, proszę spojrzeć w kod.
casperii
post 26.05.2015, 14:00:13
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Witam, mam kod, po kliknięciu w przycisk, wyskakuje okienko dialog, potem mam ustawione 2 butony , po kliknięciu w "zapisz" pokazuje mi , że wartość nie istnieje, tak jakby nie przesyłało forma.

Kod:

Kod
$(document).ready(function(){
    $("#OpenWindowEducation").click(function(e){
        $("#EducationWindow").dialog({
            height: 550,
            width: 640,
            left: 610,
            top:50,
            hide: "explode",
            buttons:{
                        "Zapisz": function(submit){
                            var form = $('#UpdateEducation'),
                            formData = form.serialize(),
                            formUrl = form.attr('action'),
                            formMethod = form.attr('method'),
                            responseMsg = $('#education-response');
                            responseMsg.hide().addClass('response-waiting').text('czekaj...').fadeIn(300);
                            
                            $.ajax({
                                type: formMethod,
                                url: "update.php",
                                data: formData,
                                processData: false,
                                //contentType: false,
                                success: function(data){
                                    var dataObject = jQuery.parseJSON(data);
                                    var responseData = jQuery.parseJSON(data),
                                    klass = '';
                                    
                                    switch(responseData.status){
                                        case 'error':
                                        klass = 'response-error';
                                        break;

                                        case 'success':
                                        klass = 'response-success';

                                        setTimeout(function(){
                                            $('#sugesstionForm').dialog('close');                
                                        }, 1000);
                                        break;  
                                    }

                                    responseMsg.fadeOut(200,function(){
                                        $(this).removeClass('response-waiting').addClass(klass).text(responseData.message).fadeIn(200,function(){
                                            setTimeout(function(){
                                                responseMsg.fadeOut(200,function(){
                                                    $(this).removeClass(klass);
                                                });
                                            },3000);
                                        });
                                    });
                                    console.log(data)
                                }
                            });



                                        
                            e.preventDefault();
                            //$( this ).dialog( "close" );
                        },
                        
                        "Anuluj": function(){
                            $( this ).dialog( "close" );
                        }
            },    
            
            close: function(){}
        });
        return false;
    });
});


Ten post edytował casperii 26.05.2015, 14:55:35
Go to the top of the page
+Quote Post
robertpiaty
post 26.05.2015, 14:09:10
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

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


W tej linii na końcu zamiast średnika masz przecinek.
  1. var responseData = jQuery.parseJSON(data),


Przy okazji linię wcześniej tworzysz dataObject którego chyba nigdzie nie wykorzystujesz dalej w kodzie.


--------------------
Go to the top of the page
+Quote Post
Comandeer
post 26.05.2015, 14:11:38
Post #3





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Ten przecinek tam ma być…
Rozumiem, że serwer nic nie zwraca? Coś konsola rzuca?


--------------------
Go to the top of the page
+Quote Post
casperii
post 26.05.2015, 14:11:41
Post #4





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Cytat(robertpiaty @ 26.05.2015, 15:09:10 ) *
W tej linii na końcu zamiast średnika masz przecinek.
  1. var responseData = jQuery.parseJSON(data),


Przy okazji linię wcześniej tworzysz dataObject którego chyba nigdzie nie wykorzystujesz dalej w kodzie.


Poprawiłem, ale to nic nie dało.
Go to the top of the page
+Quote Post
Comandeer
post 26.05.2015, 14:13:02
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Ej, ludzie - ale ram ten przecinek ma być! Inaczej bez niego deklaracj klass jest deklaracją zmiennej globalnej. Warto zauważyć, ze w linijce z deklaracją klass nie ma bowiem słowa kluczowego var


--------------------
Go to the top of the page
+Quote Post
casperii
post 26.05.2015, 14:18:36
Post #6





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Cytat(Comandeer @ 26.05.2015, 15:13:02 ) *
Ej, ludzie - ale ram ten przecinek ma być! Inaczej bez niego deklaracj klass jest deklaracją zmiennej globalnej. Warto zauważyć, ze w linijce z deklaracją klass nie ma bowiem słowa kluczowego var


@Comandeer Ok, wróciłem do czasu przecinka smile.gif Ale to i tak nic nie daje. Otrzymuje po prostu wiadomość z zewnętrznego pliku, ale błędu konsola nie wywala.

Ten post edytował casperii 26.05.2015, 14:19:06
Go to the top of the page
+Quote Post
robertpiaty
post 26.05.2015, 14:19:15
Post #7





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

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


No tak, ale to jest js i nowa linia.


--------------------
Go to the top of the page
+Quote Post
nospor
post 26.05.2015, 14:25:27
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
No tak, ale to jest js i nowa linia.
No i co? To juz w js nie mozna po przecinku przeniesc do oddzielnej linii? Mozzna.
Ale to nie ma znaczenia czy jest , czy ; bo to nie w tym problem.

Casperi: odpal sobie konsole firebug i patrz co idzie ajaxem, co masz na zwrocie i wszystko bedzie jasne


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
robertpiaty
post 26.05.2015, 14:32:58
Post #9





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

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


Mea culpa - racja - coś mnie przyćmiło, przecież tak się też obiekty tworzy.
  1. var a = {
  2. a:1,
  3. b:5
  4. }


--------------------
Go to the top of the page
+Quote Post
casperii
post 26.05.2015, 14:37:03
Post #10





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Problem rozwiązany, okazało się , że miałem 2 x form o tym ID :-) Zapomniałem ten wcześniejszy po prostu usunąć.

Ten post edytował casperii 26.05.2015, 14:41:31
Go to the top of the page
+Quote Post
Comandeer
post 26.05.2015, 14:41:29
Post #11





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


No to sprawdź co przychodzi do skryptu


--------------------
Go to the top of the page
+Quote Post
casperii
post 26.05.2015, 14:57:35
Post #12





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Cytat(Comandeer @ 26.05.2015, 15:41:29 ) *
No to sprawdź co przychodzi do skryptu


@Comandeer a jak zrobić żeby kasowało wartości w inputach po wysłaniu forma z okna dialog.
Bo teraz jest tak , wypełniam form, wysyłam, zamyka mi dialog , kliknę sobie ponownie i okazuje się , że w formie są te same wartości.

Ten post edytował casperii 26.05.2015, 14:58:42
Go to the top of the page
+Quote Post
Comandeer
post 26.05.2015, 14:59:16
Post #13





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Kasowanie to coś w deseń
Kod
$(elem).val('');


--------------------
Go to the top of the page
+Quote Post
casperii
post 26.05.2015, 15:03:24
Post #14





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Cytat(Comandeer @ 26.05.2015, 15:59:16 ) *
Kasowanie to coś w deseń
Kod
$(elem).val('');


A co jeśli mam 50 inputów to co mam wykonać 50 x element value ?

$('input[name="nazwa_szkoly"]').val('');
Go to the top of the page
+Quote Post
Comandeer
post 26.05.2015, 15:06:12
Post #15





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


To można skorzystać np z fsktu, że mają wspólnego rodzics
Kod
$(' div input').val('');


--------------------
Go to the top of the page
+Quote Post
robertpiaty
post 26.05.2015, 15:25:54
Post #16





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

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


Lub nadać im wspólną klasę i wtedy tak
  1. $('input.klasa').val('');


--------------------
Go to the top of the page
+Quote Post
casperii
post 26.05.2015, 21:33:10
Post #17





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Jeszcze takie pytanie z innej beczki, ponieważ z okna dialog zapisuje dane do bazy. Wpadłem teraz na pomysł , by móc te dane updatować także za pomoc okienka dialog. Czyli wyświetlam pętlą while wszystkie wyniki, następnie klikam w edytuj i otwieram okienko dialog już z wypełnionymi inputami.

Jak teraz coś takiego zrobić?

Ten post edytował casperii 26.05.2015, 21:48:12
Go to the top of the page
+Quote Post
robertpiaty
post 26.05.2015, 21:56:57
Post #18





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

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


Jest takie rozszerzenie jak jQgrid. Może Ci się przydać - zobacz przykład ten http://www.guriddo.net/demo/guriddojs/edit...rols/index.html (zaznacz wiersz w tabeli) lub ten http://www.guriddo.net/demo/guriddojs/edit...logs/index.html (zaznacz wiersz tabeli i kliknij na ikonę ołówka w lewym dolnym rogu tabeli)


--------------------
Go to the top of the page
+Quote Post
casperii
post 26.05.2015, 22:33:49
Post #19





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Wolałbym unikać gotowców, poza tym ten musiałbym przerabiać i dopasowywać, a to więcej czasu by mi zajęło niż wymyślenie jak zrobić to na modal dialog.
Wydaje mi się, że każdemu elementowi wystarczy nadać ID z ID z bazy. Następnie może poprzez GET? wczytywać do otwartego okienka?
Jeżeli się mylę, to niech ktoś mnie wyprowadzi z błędu.
Go to the top of the page
+Quote Post
Comandeer
post 26.05.2015, 22:45:12
Post #20





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Łatwo wykryć co kliknąłeś, więc łatwo też dostać się do wartości z konkretnego wiersza wyświetlanego wyniku


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 03:20