Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przekazywanie zmiennych w skrypcie php
Forum PHP.pl > Forum > Przedszkole
eurosoft
Witam,
mam poniższy problem. Posiadam skrypt w którym zastosowałem paginację stron.
  1. $ileNaStronie=5;
  2.  
  3. $sql = "SELECT COUNT(*) FROM tabela WHERE nr_obw='{$_POST['nr_obw']}'";
  4. $result = mysql_query($sql) or die('Queryproblem: ' . mysql_error());
  5. $ilePozycji = mysql_result($result, 0);
  6. mysql_free_result($result);
  7.  
  8.  
  9.  
  10. $ileStron=ceil($ilePozycji/$ileNaStronie);
  11.  
  12. if(!isset($_GET[page]))
  13. {
  14. $strona=$ileStron;
  15.  
  16. }
  17. else
  18. $strona=$_GET[page];
  19. $from=($strona-1)*$ileNaStronie;
  20.  
  21.  
  22. $z1 = "SELECT * FROM tabela WHERE nr_obw='{$_SESSION['nr_obw']}' ORDER BY id_odst ASC LIMIT $from, $ileNaStronie";
  23. $wz = mysql_query($z1);
  24. $zlicz = mysql_num_rows($wz);
  25. if ($wz==0)
  26. {
  27. echo 'Brak wyboru';}
  28.  
  29.  
  30. if($zlicz)
  31. {
  32.  
  33. if($ilePozycji>$ileNaStronie)
  34. {
  35. $ileStron=ceil($ilePozycji/$ileNaStronie);
  36.  
  37. if($strona>1) //poprzednia strona
  38. {
  39. echo"<a href=\"?=&page=";
  40. echo $strona-1;
  41. echo "&$order\">Poprzednia</a>";
  42. echo "&nbsp;&nbsp;";
  43.  
  44. echo"<a href=\"?=&page=";
  45. echo 1;
  46. echo "&$order\">1</a>";
  47. echo "&nbsp;&nbsp;";
  48. }
  49. //////////////////////////////////////////////
  50. function odnosnik($page, $ofs)
  51. {
  52. global $order;
  53. if($page-$ofs > 1)
  54. {
  55. echo"<a href=\"?=&page=";
  56. echo $page-$ofs;
  57. echo "&$order\">";
  58. echo $page-$ofs;
  59. echo "</a>";
  60. echo "&nbsp;&nbsp;";
  61. }
  62. }
  63. function odnosnikr($page, $ofs, $pagenum)
  64. {
  65. global $order;
  66. if($page+$ofs < $pagenum)
  67. {
  68. echo"<a href=\"?=&page=";
  69. echo $page+$ofs;
  70. echo "&$order\">";
  71. echo $page+$ofs;
  72. echo "</a>";
  73. echo "&nbsp;&nbsp;";
  74. }
  75. }
  76.  
  77. odnosnik($strona,20);
  78. odnosnik($strona,10);
  79. odnosnik($strona,2);
  80. odnosnik($strona,1);
  81. echo $strona;
  82. echo "&nbsp;&nbsp;";
  83. odnosnikr($strona,1,$ileStron);
  84. odnosnikr($strona,2,$ileStron);
  85. odnosnikr($strona,10,$ileStron);
  86. odnosnikr($strona,20,$ileStron);
  87.  
  88. if($strona<$ileStron)
  89. {
  90. echo"<a href=\"?=&page=";
  91. echo $ileStron;
  92. echo "&$order\">$ileStron</a>";
  93.  
  94. echo "&nbsp;&nbsp;";
  95.  
  96. echo"<a href=\"?=&page=";
  97. echo $strona+1;
  98. echo "&$order\">Następna</a>";
  99.  
  100. }
  101. }
  102. }

wcześniej mam również deklarację:
$_SESSION['nr_obw'] = $_POST['nr_obw'];

działa ona dobrze i nie mam z nią problemów, jednak w skrypcie również są pola radio które user musi wybrać:

  1. echo '<br><form action="" method="post">';
  2. echo 'Wybierz:&nbsp;&nbsp;';
  3. echo '<CHECKED="">';
  4. while($nt=mysql_fetch_array($result2))
  5. {
  6. echo '<input type="radio" name="nr_obw" onclick="submit();" '.($_SESSION['nr_obw']==$nt['nr_obw'] ? 'CHECKED=""' : '').' value="'.($nt['nr_obw']).'">'.($nt['nr_obw']).'&nbsp;&nbsp;</input>';
  7. }
  8. echo'</form>';

ta funkcja również działa bez zarzutu.
Problem pojawia się gdy zmieniam strone paginacji, skrypt traci wartość w polu radio....
Proszę o pomoc w rozwiązaniu problemu.
Pozdrawiam!
eurosoft
Dziękuję za odpowiedź coś ruszyło ale nie do końca. Mam po poprawkach tak:
  1. $_SESSION['nr_obw'] = $_POST['nr_obw'];
  2. if (!empty($_POST['nr_obw'])){
  3.  
  4.  
  5. $_SESSION['form'] = array(
  6. 'nr_obw' => $_POST['nr_obw'],
  7.  
  8. );
  9. }
  10. $formData = array(
  11. 'nr_obw' => !isset($_SESSION['form']) ? null : $_SESSION['form']['nr_obw'],
  12.  
  13. );
  14.  
  15. $obw = "SELECT DISTINCT nr_obw FROM tebela";
  16. $result2 = mysql_query ($obw);
  17.  
  18. echo "<center><br><br><br>";
  19. echo '<br><form action="" method="post">';
  20. echo 'Wybierz:&nbsp;&nbsp;';
  21.  
  22. while($nt=mysql_fetch_array($result2))
  23. {
  24. echo '<input type="radio" name="nr_obw" onclick="submit();" '.($formData['nr_obw']==$nt['nr_obw'] ? 'CHECKED=""' : '').' value="'.($nt['nr_obw']).'">'.($nt['nr_obw']).'&nbsp;&nbsp;</input>';
  25.  
  26.  
  27. }

teraz po przejściu na kolejne strony radio jest zaznaczone dobrze, ale zmienna sesyjna 'nr_obw' jest pusta...
nospor
Bo tej linii:
$_SESSION['nr_obw'] = $_POST['nr_obw'];
Ma nie być. Widziałeś u mnie w kodzie ją gdzies? Bo ja nie.
eurosoft
OK masz rację, u Ciebie w kodzie jej nie ma, ale jak to zlikwodowałem to zmiana na radio nie zmienia wartości w zmiennej nr_obw...
nospor
Ja mowilem o likwidacji tylko tego
$_SESSION['nr_obw'] = $_POST['nr_obw'];
niczego wiecej.
Ta linijka do niczego nie jest potrzebna i na nic nie wpływa. Jeśli zas ta linijka u ciebie na coś wpływa, to coś przekombinowałes.
eurosoft
Cytat(nospor @ 5.04.2012, 13:44:34 ) *
Ja mowilem o likwidacji tylko tego
$_SESSION['nr_obw'] = $_POST['nr_obw'];
niczego wiecej.
Ta linijka do niczego nie jest potrzebna i na nic nie wpływa. Jeśli zas ta linijka u ciebie na coś wpływa, to coś przekombinowałes.

OK już działa, nie poprawiłem w pozostałych zapytaniach.
Dziękuję!
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.