![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 9.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Siema
![]() Mam do Was pytanie, tworze skrypt ma w sobie formularz ( metoda post ) ktory za pomocą assign() odwoluje się do pliku ktory generuje kolejny formularz w ktory znow za pomocą assign() ma wykonać pewne operacje i dodać pewne dane do bazy mysql....mniej więcej wygląda to tak: formularz przesłanie danych za pomocą assign() -> wygenerowanie kolejnego formularza znow przeslanie danych assign() -> dodanie danych bo bazy mysql... Problem pojawia w drugim formularzu, mianowicie mam dodaną tam funkcje wykorzystującą assign po zakończeniu kodu php, jednak nic sie nie dzieje....klikam na wysłanie danych a mnie przeladowuje strone bez zadnego rezultatu a jak patrze w zrodlo kodu to nie ma sladu po funkcji w js... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Podaj fragment kodu, może wtedy ktoś Tobie pomoże bo nikt na forum nie jest jasnowidzem aby domyślać się co zrobiłeś źle lub gdzie jest błąd w Twoim kodzie.
Łukasz -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 9.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj za pomocą gen_table plik php tworzy mi formularz (modify_points) w ktorym wpisuje dane i chce je przesłać dalej jednak nastepuje przeladowanie w tradycyjny sposob. Wygląda to tak : wybieram date ( form gen_table )-> zostaje wygenerowany formularz ( modify_points ) w ktorym wpisuje dane --(tu wystepuje blad, nie dziala assign z modify_points)--> przeslanie danych do skryptu z zapytaniem mysql |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
proponuje Ci żebyś ikrył ten drugi formularz, a po wybraniu z pierwszego selecta uaktywniasz (pokazujesz) ten ukryty formularz.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 9.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
proponuje Ci żebyś ikrył ten drugi formularz, a po wybraniu z pierwszego selecta uaktywniasz (pokazujesz) ten ukryty formularz. Możesz ciupke jaśniej, w tematyce js i ajax jestem początkujący...Poza tym jeżeli dobrze rozumiem to jak mogę ukryć drugi formularz gdyż plik php który obsługuje pierwszy formularz generuje własnie drugi....Całość wygląda tak że ten formularz z pliku html zacytowanego tu przezemnie w zależnośći od wybranej daty i klasy generuje formularz z rekordami odpowiednimi dla wybranych danych a zatem nie mogę ukryć czegoś co jest generowane dynamicznie. Sprawa dla mnie jest o tyle dziwna że skoro w pliku html zamieściłem metody assign() dla zarówno pierwszego jak i drugiego formularza to dlaczego to nie działa ( skoro w divie sie generuje formularz o odpowiednim id zawartym w stworzonych metodach assign() ). Ten post edytował qbejs 23.03.2007, 23:30:22 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
OK, już lepiej rozumiem o co Ci chodzi.
Twój problem wynika z tego że advAJAX.assign jest wywoływana przy ładowaniu strony. Funkcja cały czas czuwa nad podanym elementem, tylko że ona na początku go nie ma. Poprostu nie ma takiego formularza więc 'przestaje działać'. A to że tak jest zrobione, to i bardzo dobrze. Wyjściem z tego jest wsadzenie tego drugiego advAJAX.assign do funkcji a potem dadanie wywołania tej funkcji, jeśli zostały poprawnie pobrane dane (onSuccess) -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 9.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
OK, już lepiej rozumiem o co Ci chodzi. Twój problem wynika z tego że advAJAX.assign jest wywoływana przy ładowaniu strony. Funkcja cały czas czuwa nad podanym elementem, tylko że ona na początku go nie ma. Poprostu nie ma takiego formularza więc 'przestaje działać'. A to że tak jest zrobione, to i bardzo dobrze. Wyjściem z tego jest wsadzenie tego drugiego advAJAX.assign do funkcji a potem dadanie wywołania tej funkcji, jeśli zostały poprawnie pobrane dane (onSuccess) Ok, już działa i faktycznie to wydaje się logiczne no ale człowiek uczy się na błędach ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
w drugim assignie zmień w onSuccess: document.getElementById("wynik").innerHTML
document.getElementById(tu jakiś inny div).innerHTML dane ładuj do innego diva albo zrób coś takeigo: document.getElementById("wynik").innerHTML += 'bleble'; -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 9.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
w drugim assignie zmień w onSuccess: document.getElementById("wynik").innerHTML document.getElementById(tu jakiś inny div).innerHTML dane ładuj do innego diva albo zrób coś takeigo: document.getElementById("wynik").innerHTML += 'bleble'; Ok, dzieki wielkie za pomoc ![]() ![]() //EDIT: Problem rozwiązany wystarczyło zmienic z assign na submit ![]() A jednak mam pytanie, chce aby dana strona po wygenerowaniu przez formularz odświezala sie co np. 5 sekund...stworzylem taki oto kod jednak coś jest nie tak...
Ten post edytował qbejs 24.03.2007, 23:58:40 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 160 Pomógł: 4 Dołączył: 22.04.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
document.getElementById("wynik").innerHTML = self.setInterval(odswiez();,5000);
![]() po pierwsze nie przypisuj setInterval do czego kolwiek, bo nie ma po co a po drugie użyj samo set interval bez tego self a po trzecie zakończyłeś linie (bo tak to interpretuje parser) po odświez() po czwarte wystarczy jak zapiszesz setInterval(odswiez, 5000); Ten post edytował yaro 26.03.2007, 18:35:50 -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Podpinam się pod ten temat bo mój problem jest podobny, a jednak nieco inny.
Zrobione mam tak: pierwsze wywołanie jest następujące : Kod function product_gallery (id) { advAJAX.get ({ url : "system/ajax.php", parameters : { "ajax_product_gallery" : id }, onSuccess : function(obj) { document.getElementById("product_gallery").innerHTML = obj.responseText; } }); } Zwraca ona galerię produktu o określonym id. Wszystko działa poprawnie. W ajax.php wykorzystuje XTemplate (http://www.phpxtemplate.org) a zawartość samego template obecnie jest następująca: Kod <!-- BEGIN: product_gallery --> <h3>Galeria produktu</h3> <!-- BEGIN: images --> <div class="margin-top-15"> <img src="{OBRAZEK}" width="150" /> {ID}.{ROZSZERZ} | {DODANO} | {OPIS} | {WEJSC} test </div> <!-- END: images --> <!-- BEGIN: noimages --> Dla tego produktu, nie dodano jeszcze fotografii. <!-- END: noimages --> <div class="margin-top-15"></div> <h3>Dodaj obrazek</h3> <div id="wynik"> <form id="add_photo" enctype="multipart/form-data" action="dupa.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> <input type="file" name="obrazek" /> <input type="submit" value="dodaj" /> </form> <script type="text/javascript" language="javascript"> function add_photo() { advAJAX.assign ( document.getElementById("add_photo"), { onLoading : function(obj){ document.getElementById("wynik").innerHTML = '<div class=center><b>Ładowanie danych...</b><br/><img src="skins/{PHP.skin}/img/icons/ajax-loader.gif"></div>'; }, onSuccess : function(obj) { document.getElementById("wynik").innerHTML = obj.responseText; }, onError: function(obj) { document.getElementById("wynik").innerHTML = 'Error'; } } ); } add_photo(); </script> </div> <!-- END: product_gallery --> Niestety formularz leci normalnie do action, pomijany jest ajax. Jeżeli natomiast adv.assing dam w poprzednim XTemplate w pliku w którym wywoływana jest metoda advAjax.get, działa poprawnie, ale rozwiązanie mnie nie satysfakcjonuje, chce aby kod odpowiedzialny za dodawanie był w dobrym miejscu, a nie w innym tpl'u, w którym jest zbędny ( ale dziala jeśli w adv.get() onSucc dodam add_photo(); ). Pomyślałem, że może to zadziała, gdy po załadowaniu zainicjowanej metody, którą dam w funkcję wywołam tą funkcję, ale też nic to nie dało. Może ktoś ma jakiś pomysł ? Pozdrawiam i z góry dziękuję za każdą pomoc. -------------------- Aplikacje mobilne iPhone i iPad: http://generio.pl / http://facebook.com/GenerioPL
Portfolio: http://poslinski.net |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 04:38 |