Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][MySQL][PHP]Cookie z wyborem w select i pobieranie danych z MYSQL
brzanek
post
Post #1





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Witam w bazie danych mysql mam dane o odpowiednich id.
Zanim je pobiorę chcę aby po wejściu na stronę w osobnym oknie pojawił się mały formularz z wyborem select. Wybór ten zapisuje się w ciasteczku i pamięta to przez np. rok. Wybór w formularzu powodował by pobieranie odpowiednich danych o jakimś id z bazy danych.
Mam nadzieję, że jakoś to wytłumaczyłem.
Jak narazie mam coś takiego
  1. <?
  2.  
  3. ?>
  4. <select id="ThemeSelect" onchange="saveTheme(this.value);">
  5. <option value="1">CHOSZCZNO</option>
  6. <option value="2">SZCZECIN</option>
  7. <option value="3">KOSZALIN</option>
  8. </select>
  9. <script>
  10. var saveclass = null;
  11.  
  12. function saveTheme(cookieValue)
  13. {
  14. var sel = document.getElementById('ThemeSelect');
  15.  
  16. saveclass = saveclass ? saveclass : document.body.className;
  17. document.body.className = saveclass + ' ' + sel.value;
  18.  
  19. setCookie('theme', cookieValue, 365);
  20. }
  21.  
  22. function setCookie(cookieName, cookieValue, nDays) {
  23. var today = new Date();
  24. var expire = new Date();
  25.  
  26. if (nDays==null || nDays==0)
  27. nDays=1;
  28.  
  29. expire.setTime(today.getTime() + 3600000*24*nDays);
  30. document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
  31. }
  32.  
  33. function readCookie(name) {
  34. var nameEQ = name + "=";
  35. var ca = document.cookie.split(';');
  36. for(var i = 0; i < ca.length; i++) {
  37. var c = ca[i];
  38. while (c.charAt(0) == ' ') c = c.substring(1, c.length);
  39. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  40. }
  41. return null;
  42. }
  43.  
  44. document.addEventListener('DOMContentLoaded', function() {
  45. var themeSelect = document.getElementById('ThemeSelect');
  46. var selectedTheme = readCookie('theme');
  47.  
  48. if (selectedTheme) {
  49. themeSelect.value = selectedTheme;
  50. }
  51. });
  52. </script>
  53. <?
  54. ?>

Po wyborze ciasteczko zapisuje się ale jak to teraz połączyć z bazą danych.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
brzanek
post
Post #2





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Dalej z tym walczę.
Mam już coś takiego zrobione, że wybiera mi to co chcę ale jak zrobić aby wybór był dokonany bez ponownego przeładowania strony.
Mam taki kod
  1. <?
  2. include('db.php');
  3. ?>
  4. <style>
  5. .goraods {
  6. padding-top: 15px;
  7. }
  8. .goraodsm {
  9. padding-top: 3px;
  10. }
  11. .goraodsd {
  12. padding-top: 20px;
  13. }
  14. .goraodsd10 {
  15. padding-top: 10px;
  16. }
  17. .lewyods {
  18. padding-left: 15px;
  19. }
  20. .odstgora {
  21. font-size: 22px;
  22. }
  23. .opady {
  24. color: #1d4974;
  25. }
  26. .odsteplewy {
  27. padding-left: 15px;
  28. }
  29. </style>
  30.  
  31. <?
  32. // czy formularz został przesłany i czy wybrana została nazwa_miasta
  33. if(isset($_POST['formularz']) && isset($_POST['nazwa_miasta']))
  34. {
  35. $nazwa_miasta = $_POST['nazwa_miasta'];
  36. // ustawiamy ciastko o nazwie 'miasto' z wartością $nazwa_miasta, ważne przez 60 sekund
  37. setcookie('miasto', $nazwa_miasta, time()+60);
  38. }
  39. // jeśli ciastko 'miasto' istnieje
  40. if(isset($_COOKIE['miasto']))
  41. {
  42. $miastoArray2=array(
  43. '1' => 'CHOSZCZNO',
  44. '2' => 'SZCZECIN',
  45. '3' => 'KOSZALIN',
  46. '4' => 'ŚWINOUJŚCIE',
  47. );
  48.  
  49. // wyświetl miasto z ciastka
  50. $result = $mysqli->query("SELECT * FROM obecnie WHERE id_miasto =" . $_COOKIE['miasto'] . " ORDER BY id ASC LIMIT 1");
  51. while ( $row = mysqli_fetch_array($result) ) {
  52. echo '<div class="row text-center">';
  53. echo "<div class='col-md-12 odstgora'>".$miastoArray2[($row['id_miasto'])]."</div>";
  54. echo '</div>';
  55. echo '<div class="row goraodsd10">';
  56.  
  57. echo '</div>';
  58. echo '<h1 class="text-center">'.$row['temperature'].'&deg; <i class="wi wi-forecast-io-'.$row['icon'].'" data-toggle="tooltip" data-placement="top" title="'.$row['summary'].'"></i></h1>';
  59. echo '<div class="row goraods">';
  60. echo '<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4"><i class="wi wi-raindrops opady" title="Prawdopodobieństwo opadów"></i> '.$row['precipProbability'].'%</div>';
  61. echo '<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"><i class="wi wi-umbrella opady" title="Suma opadów"></i> '.$row['precipIntensity'].'mm</div>';
  62. echo '<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2"></div>';
  63. echo '</div>';
  64. echo '<div class="row goraodsm">';
  65. echo '<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4"><i class="wi wi-humidity" title="Wilgotność"></i> '.$row['humidity'].'%</div>';
  66. echo '<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"><i class="wi wi-strong-wind" title="Porywy wiatru"></i> '.$row['windGust'].'km/h</div>';
  67. echo '<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2"></div>';
  68. echo '</div>';
  69. echo '<div class="row goraodsm">';
  70. echo '<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6"><i class="wi wi-barometer" title="Ciśnienie"></i> '.$row['pressure'].'hPa</div>';
  71. echo '<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4"></div>';
  72. echo '<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2"></div>';
  73. echo '</div>';
  74. echo '<div class="row goraodsd">';
  75. echo '<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3" style="color:red;">Dzisiaj:</div>';
  76. echo '<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4"><i class="wi wi-sunrise" title="Wschód słońca"></i> '.date("H:i", $row['tSunRise']+3600).'</div>';
  77. echo '<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5"><i class="wi wi-sunset" title="Zachód słońca"></i> '.date("H:i", $row['tSunSet']+3600).'</div>';
  78. echo '</div>';
  79. echo '<div class="row">';
  80. echo '<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3">Temp: </div>';
  81. echo '<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">max: '.$row['tTempHigh'].'&deg;</div>';
  82. echo '<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">min: '.$row['tTempLow'].'&deg;</div>';
  83. echo '</div>';
  84. echo '<div class="row">';
  85. echo '<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3">Wiatr: </div>';
  86. echo '<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">'.$row['tWindSpeed'].'km/h</div>';
  87. echo '<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">max: '.$row['tWindGust'].'km/h</div>';
  88. echo '</div>';
  89. echo '<div class="row">';
  90. echo '<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3">Opady: </div>';
  91. echo '<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">mm</div>';
  92. echo '<div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">max: mm</div>';
  93. echo '</div>';
  94. }
  95.  
  96. }
  97. else
  98. {
  99.  
  100. ?>
  101. <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
  102.  
  103. <div class="form-group">
  104. <label for="exampleFormControlSelect1">Wybierz miasto</label>
  105. <select class="form-control" id="exampleFormControlSelect1" name="nazwa_miasta">
  106. <option value="1">CHOSZCZNO</option>
  107. <option value="2">SZCZECIN</option>
  108. <option value="3">KOSZALIN</option>
  109. <option value="4">ŚWINOUJŚCIE</option>
  110. </select>
  111. </div>
  112. <input type="hidden" name="formularz" value="1" />
  113. <div class="form-group row">
  114. <div class="col-sm-10">
  115. <button type="submit" class="btn btn-primary">Zapisz</button>
  116. </div>
  117. </div>
  118. </form>
  119. <?
  120. echo '
  121. </form>';
  122. }
  123. ?>

Adres strony http://www.pogoda-zachodniopomorskie.pl/in...asto_cookie.php
Ciasteczko zapamiętane jest przez 60 sek. Aby po wyborze była widoczna zmiana strony trzeba ponownie ją odświeżyć. Jak to zmienić?

Ten post edytował brzanek 29.01.2019, 20:03:37
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: 12.10.2025 - 08:16