Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MSSQL][PHP]Wiele formularzy na stronie
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 517
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?

  1. ........
  2.  
  3. <form name="parametry" form action="pdf.php" target="_blank" method="post">
  4. <p><input type="submit" value="Generuj PDF" onclick="submit(); window.close();" /></p>
  5.  
  6.  
  7. <b><font size="4px">Parametry wydruku </b></font><br /><br />
  8. <table width="100%" border="1">
  9. <tr>
  10. <th align="center">Czy drukować:</th>
  11. </tr>
  12. <tr>
  13. <td valign="top">
  14. <label><input type=checkbox name="okladka" value="okladka" />&nbsp;&nbsp;Strona tytułowa</b></label><br />
  15. <label><input type=checkbox name="numeracja" readonly disabled checked="checked" value="numeracja" />&nbsp;&nbsp;Numeracja stron</b></label><br />
  16. </td>
  17. </tr>
  18. <?php
  19. //tutaj wrzuciłem forma do forma, ale chyba tak nie wolno.........
  20. echo '<form name="aaaa" action="" method="post">';
  21. echo 'od: <select name="start" onchange="this.form.submit()">';
  22. echo '<tr><td>';
  23.  
  24. for($i = $od; $i <= $max; $i++) {
  25. echo '<option value="'.$i.'">'.$i.'</option>';
  26. }
  27. echo '</select>';
  28. echo 'do: <select name="stop">';
  29.  
  30. for($i = $od; $i <= $do && $i <= $max; $i++) {
  31. echo '<option value="'.$i.'">'.$i.'</option>';
  32. }
  33. echo '</select></td>';
  34.  
  35. ?>
  36. </tr></form>
  37. </table>
  38. </form>

zastanawiałem się nad użyciem do tego java-scrip, może Ajax - ale nie wiem jak się do tego zabrać. Proszę o podpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krzesik
post
Post #2





Grupa: Zarejestrowani
Postów: 517
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ę"! ;-)
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #3





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(krzesik @ 20.02.2015, 15:07:44 ) *
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.:

  1. $con = new stdClass(); // jakiś tam handler dla bazy danych, nie chce mi się rozpisywać wszystkiego szczegółowo
  2. $pdf = new stdClass(); // j.w.
  3. $query = "SELECT * FROM tabela LIMIT :limit, :offset;";
  4. $limit = 100;
  5. $offset = 0;
  6.  
  7. while (($data = $con->query($query, array(':limit' => $limit, ':offset' => $offset)) !== false) {
  8. $pdf->addPage($data);
  9. $offset += $limit;
  10. }


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

Posty w temacie


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: 16.10.2025 - 05:59