![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Podczas wysłania danych poprzez forma w celu uzyskania dalszych informacji w kolejnych polach, wysyła mi wszystko generując plik, a tego nie chcę. W jaki sposób rozwiązać to inaczej?
zastanawiałem się nad użyciem do tego java-scrip, może Ajax - ale nie wiem jak się do tego zabrać. Proszę o podpowiedź. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 183 Pomógł: 14 Dołączył: 27.09.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jak rozumiem chcesz aby po zaznaczeniu na przykład okładka i naciśnięciu klawisza pojawiała się nastepna część formularza z wypełnionymi jakimiś polami
![]() ![]() ![]() ![]() Polecam do tego użycia Ajaxa a pozatym nie wiem czy to jest cały kod czy mi się nie rzuciło w oczy ![]() ![]() ![]() ![]() pozdrawiam |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie to nie jest kompletny kod, wysyłane dane przechwytuję wcześniej, więc tak:
mam formularz w którym sa checkboxy, które można zaznaczyć lub nie - form jeszcze się nie wysyła poniżej mam dwa select (od strony do strony) - to właśnie w tym miejscu w pierwszym selekcie wywołuję zdarzenie:onchange="this.form.submit()" w wyniku którego w odpowiedni sposób wypełnia mi się drugi selekt (chodzi o to aby user nie chciał wydrukować np. od str 7 do str. 2, ani też nie mógł wydrukować więcej niż 10 stron) po wywołaniu onchange wysyła mi się wszystko generując plik pdf, a to chciałbym aby wykonywało się wyłącznie po kliknięciu w button Generuj PDF |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nie to nie jest kompletny kod, wysyłane dane przechwytuję wcześniej, więc tak: mam formularz w którym sa checkboxy, które można zaznaczyć lub nie - form jeszcze się nie wysyła poniżej mam dwa select (od strony do strony) - to właśnie w tym miejscu w pierwszym selekcie wywołuję zdarzenie:onchange="this.form.submit()" w wyniku którego w odpowiedni sposób wypełnia mi się drugi selekt (chodzi o to aby user nie chciał wydrukować np. od str 7 do str. 2, ani też nie mógł wydrukować więcej niż 10 stron) po wywołaniu onchange wysyła mi się wszystko generując plik pdf, a to chciałbym aby wykonywało się wyłącznie po kliknięciu w button Generuj PDF To wywal onchange="this.form.submit()" -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
ok, ale wtedy w drugim selekcie nie będę miał właściwych wartości....
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
ok, ale wtedy w drugim selekcie nie będę miał właściwych wartości.... Oczywiście najgorszym rozwiązaniem w tym przypadku będzie przechwycenie w JS submita dla tego formularza, który ma się nie submitować i po prostu zwrócić false. Ale generalnie (wg mnie oczywiście) Twój kod jest źle pomyślany. I form w form jest bez sensu. Przedstaw jakiś przykład użycia, krok po kroku, co user wpisuje, gdzie wpisuje, co oznacza ten select, a ten, itd. to może uda się znaleźć optymalne rozwiązanie problemu. Jeszcze jedno. Jest to do zrealizowania bez najmniejszego problemu w czystym php. Przykład:
Ten post edytował b4rt3kk 20.02.2015, 14:51:22 -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]() ![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
OK, potzrebuję generować plik PDF, zawartość pliku nie jest skomplikowana, ale jednak podczas tworzenia wymaga tyle pamięci, że klęka mów serwer (dzierżawa u jedengo z dostawców na rynku), więc wpadłem na pomysł że jeśli nie mogę generować kompletnego pliku, to "zmuszę" usera do generowania wskazanej przezemnie maksymalnej ilości stron (wybrałem 10), chcę również unikąć sytuacji, że user źle wpisze numery drukowanych stron, stąd:
pierwszy selekt wyświetla ilość stron na których zawiera się wspomniana tabelka, user wybiera od której strony chce drukować (bo może już wcześniej coś drukował), po wyborze drugi selekt przyjmuje wartość pierwszego pokazując zarazem kolejne strony (większe o 10 lub do ostatniej), wtedy klikamy na generuj PDF. uffff, ale tak to sobie wymyśliłem, jak coś do kitu to przyjmuję "na klatę"! ;-) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
OK, potzrebuję generować plik PDF, zawartość pliku nie jest skomplikowana, ale jednak podczas tworzenia wymaga tyle pamięci, że klęka mów serwer (dzierżawa u jedengo z dostawców na rynku), więc wpadłem na pomysł że jeśli nie mogę generować kompletnego pliku, to "zmuszę" usera do generowania wskazanej przezemnie maksymalnej ilości stron (wybrałem 10), chcę również unikąć sytuacji, że user źle wpisze numery drukowanych stron, stąd: pierwszy selekt wyświetla ilość stron na których zawiera się wspomniana tabelka, user wybiera od której strony chce drukować (bo może już wcześniej coś drukował), po wyborze drugi selekt przyjmuje wartość pierwszego pokazując zarazem kolejne strony (większe o 10 lub do ostatniej), wtedy klikamy na generuj PDF. uffff, ale tak to sobie wymyśliłem, jak coś do kitu to przyjmuję "na klatę"! ;-) Patrzyłeś dlaczego serwer nie wyrabia? Co jest treścią tego pliku PDF? Rekordy z bazy? Nie wyrabia dlatego, że pobierasz ich zbyt wiele na raz? Jeśli tak, to problem jest prozaiczny, bo wystarczy generować takowy plik pdf odpowiednio mniejszymi partiami, np.:
Tym sposobem mniej pamięci będziesz używał niż pobierając wszystkie wyniki. W przypadku tych selectów nie potrzebujesz submita formularza, tylko w js wygenerować zawartość drugiego, na podstawie wybranej wartości pierwszego (bez przeładowania). -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]() ![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Plik pdf generuję w poniższy sposób, ale niestety nie wiem jak zastosować to co mi napisałeś.... :-(
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Plik pdf generuję w poniższy sposób, ale niestety nie wiem jak zastosować to co mi napisałeś.... :-(
Prosiłem, żebyś podał przyczynę przekroczenia zasobów serwera, bez tego ciężko będzie Ci pomóc. Czy wina leży po stronie zapytania, czy też kodu? Musisz to wiedzieć, zanim przystąpisz do optymalizacji. Podaj jakieś konkretne dane. Zazwyczaj skrypt wysypuje się, bo serwer musi trzymać zbyt wiele danych w pamięci, na o prostą receptą jest podzielenie dużej tablicy na mniejszą, tak jak wskazałem Ci kilka postów wyżej i tak jak próbujesz to zrobić z podziałem na x stron. Ten post edytował b4rt3kk 21.02.2015, 03:04:52 -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]() ![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Prosiłem, żebyś podał przyczynę przekroczenia zasobów serwera, bez tego ciężko będzie Ci pomóc. Czy wina leży po stronie zapytania, czy też kodu? Musisz to wiedzieć, zanim przystąpisz do optymalizacji. Podaj jakieś konkretne dane. Zazwyczaj skrypt wysypuje się, bo serwer musi trzymać zbyt wiele danych w pamięci, na o prostą receptą jest podzielenie dużej tablicy na mniejszą, tak jak wskazałem Ci kilka postów wyżej i tak jak próbujesz to zrobić z podziałem na x stron. Jeśli generuję PDF który ma mniej niż 12 stron to jest wszystko ok, ale jeśli ma więcej to wywala błąd HTTP 500, kontaktowałem się z hostingodawcą, sprawdzili co się dzieje i otrzymałem odpowiedź jednoznaczną, przekraczam zadane parametry serwera. Reasumując: Aby zmniejszyć ilość wykorzystywanej pamięci wystarczy jak podzielę całość zapytania na kilka części stosując parametr LIMIT? Później sklejam wszystkie powstałe strony do jednego PDF? |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 18 Dołączył: 7.10.2007 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
Dodatkowo nie rób w zapytaniu select * ... Bo jesłi masz dużo kolumn, a korzystasz tylko z kilku, to nie ma sensu zapychać pamięci serwera pozostałą ilością danych których i tak nie potrzebujesz.
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Jeśli generuję PDF który ma mniej niż 12 stron to jest wszystko ok, ale jeśli ma więcej to wywala błąd HTTP 500, kontaktowałem się z hostingodawcą, sprawdzili co się dzieje i otrzymałem odpowiedź jednoznaczną, przekraczam zadane parametry serwera. Reasumując: Aby zmniejszyć ilość wykorzystywanej pamięci wystarczy jak podzielę całość zapytania na kilka części stosując parametr LIMIT? Później sklejam wszystkie powstałe strony do jednego PDF? Tak, powinno pomóc. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:14 |