Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przenoszenie zmiennych $_POST[] przy stronicowaniu
Forum PHP.pl > Forum > Przedszkole
haxgres
Próbowałem zaadaptować Pagera nospora .
W przypadku przypisania zmiennym $prod,$kat,$zas$,$mat stałych wartości wszystko jest w porządku.
Natomiast przy przekazywaniu wartości z formularza metodą $_POST[] pierwsza strona jest sortowana i wyświetlana prawidłowo natomiast przejście na kolejną stronę powoduje błąd:
undefined index: prod in line 12
undefined index: kat in line 13
undefined index: zas in line 14
undefined index: mat in line 15
Czy ktoś potrafi mi pomóc ?
  1. <?php 
  2. require_once('Pager.class.php');
  3. error_reporting(E_ALL);ini_set('display_errors', 1); //raport błędów
  4.  
  5.  // połączenie z bazą
  6. mysql_connect ("localhost", "root", "krasnal") or 
  7. die ("Nie można połączyć się z MySQL");
  8. mysql_select_db ("realizacje") or 
  9. die ("Nie można połączyć się z bazą realizacje");
  10. //dane z formularza
  11.  $prod=$_POST['prod'];
  12.  $kat= $_POST['kat'];
  13.  $zas= $_POST['zas'];
  14.  $mat= $_POST['mat'];  
  15. //zapytanie pagera
  16. $sqlp = 'select count(*) from zbiorcza ,producent,kategoria,material,zastosowanie
  17. WHERE producent.producent LIKE "'.$prod.'" and '.'
  18. kategoria.kategoria LIKE "'.$kat.'" and '.'
  19. zastosowanie.zastosowanie LIKE"'.$zas.'" and '.'
  20. material.material LIKE "'.$mat.'" and '.'
  21. zbiorcza.id_pro=producent.id_pro and '.'
  22. zbiorcza.id_kat=kategoria.id_kat and '.'
  23. zbiorcza.id_zas=zastosowanie.id_zas and '.'
  24. zbiorcza.id_mat=material.id_mat';
  25. $result = mysql_query($sqlp);
  26. $row = mysql_fetch_array($result);
  27. $recordsCount = $row[0];//pobranie liczby rekordów
  28. $pager = new Pager('idPagera');
  29. $pager->SetTotalRecords($recordsCount);
  30. $pager->SetRecordsPerPage(20);
  31. $pag = $pager->Render();
  32. $start = $pager->GetIndexRecordStart();
  33. $end = $pager->GetIndexRecordEnd();
  34. $koniec = $end - $start + 1;  
  35. //zapytanie głowne
  36. $sql='SELECT * FROM zbiorcza ,producent,kategoria,material,zastosowanie
  37. WHERE producent.producent LIKE "'.$prod.'" and '.'
  38. kategoria.kategoria LIKE "'.$kat.'" and '.'
  39. zastosowanie.zastosowanie LIKE"'.$zas.'" and '.'
  40. material.material LIKE "'.$mat.'" and '.'
  41. zbiorcza.id_pro=producent.id_pro and '.'
  42. zbiorcza.id_kat=kategoria.id_kat and '.'
  43. zbiorcza.id_zas=zastosowanie.id_zas and '.'
  44. zbiorcza.id_mat=material.id_mat
  45. ORDER BY zbiorcza.id_pro ASC
  46. LIMIT '.$start.','.$koniec;
  47.  $wynik = mysql_query ($sql) or 
  48. die ("błąd w pytaniu");
  49.  
  50. print "<table width='100%' cellspacing='0' cellpadding='2' border='1' frame='box' rules='all' class='klasa5'>";
  51. print "<TR><TD><B>nr</B></TD>";
  52. print "<td><b>producent</b></td>";
  53. print "<TD><B>kategoria</B></TD>";
  54. print "<TD><B>zastosowanie</B></TD>";
  55. print "<TD><B>material</B></TD>";
  56. print "<TD><B>fotografia</B></TD>";
  57. print "<TD><B>opis</B></TD></tr>n";
  58.  
  59. if ($prod=="%" &&$kat=="%" &&$zas=="%" &&$mat=="%" )
  60. {
  61. print "<p>Nie wybrano żadnych warunków - wydruk wszystkich fotografi</p>"; }
  62. else{
  63. print ("$prod")."rn    ";
  64. print ("$kat")."rn    ";
  65. print ("$zas")."rn    ";
  66. print ("$mat")."rn    ";
  67. print "<p></p>";
  68. }
  69. while ($rekord = mysql_fetch_assoc ($wynik))
  70. {
  71. $nr = $rekord['id_obr'];
  72. $producent = $rekord['producent'];
  73. $kategoria = $rekord['kategoria'];
  74. $zastosowanie = $rekord['zastosowanie'];
  75. $material = $rekord['material'];
  76. $nr_obrazu = $rekord['nr_obrazu'];
  77. $opis = $rekord['opis'];
  78. print "<TR><TD>$nr</TD><TD>$producent</TD>";
  79. print "<TD class='klasa9'>$kategoria</TD><TD class='klasa9'>$zastosowanie</TD><td class='klasa9'>$material</td>";
  80. print "<td><a href='big/terakota.glazura.$nr_obrazu.html' target='_self'><img src='small/glazura.$nr_obrazu.jpg' height='80' width='80'></a></td><td class='klasa9'>$opis</td>";
  81. }  
  82. print "</TABLE>";
  83. echo $recordsCount."<br/>";
  84. echo $pag;//wyswietlenie pager'a
  85. ?>
nospor
Przechodząc na kolejne strony, tracisz informacje, ktore byly przekazanej do strony pierwszej poprzez formularz.
Rozwiązanie jest proste: musisz zapisac te dane w sesji i na kolejnych stronach pobierac je z sesji.
Jakis czas temu juz to tutaj pisalem jakiejs pani smile.gif
haxgres
Ale jak to zrobić ?
Zapisanie stałej w sesji oczywiście działa ale przy przejściu na kolejną stronę znowu próbuje pobrać dane z $_POST[] i nadpisuje pustą zmienną i właśnie w tym problem jak zrobić aby nie pobierał ponownie danych z $_POST[].
Jeżeli potrafisz mi pomóc byłbym wdzięczny.
nospor
  1. <?php
  2. if (isset($_POST['prod']))
  3.  $_SESSION['prod'] = $_POST['prod'];
  4. //....blabla
  5. $prod = $_SESSION['prod'];
  6. ?>

Na podobnej zasadzie zrob reszte zmiennych
haxgres
Chodzi jak burza!
Dziekuje!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.