Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP]Reload a zachowanie wartosci wprowadzonych danych
Forum PHP.pl > Forum > Przedszkole
paula1710
Witam,

Mam takie pytanie czy istnieje jakis sposob zeby zachowac wczesniej wporwdzanone dane do formularza przy reloadzie??

tzn mam taka strone na ktorej sa 2 listy (ladowane za pomoca funkcji reload)
jedna wyswietla dostepne fora a druga uzytkownikow do nich przypisanych (ta lista zmienia sie dynamicznie w momencie wyboru forum).

do tego mam 2 pola opis i data - ktore sa wprowadzane przez uzytkownika
oraz button - submit bo ktorego kliknieciu dane forum, uzytkownik, opis, data sie zapisuja do bazy

Problem polega na tym ze jezeli uzytkownik wpisze opis i data a nastepnie - rozmysli sie i zmieni forum - dane opis oraz data 'znikaja'.

Jak moge je zachowac zeby przy reloadzie forum i uzytkownikow nei trzebabylo ponownie wpisywac opisu i daty.

kod wyglada mniej wiecej tak:

CODE
  1. Addapt.php?for=1 (for zmienna perzeslana z poprzedniego formularza)
  2.  
  3. <script language=JavaScript>
  4. function reload(form){
  5. var val=form.for.options[form.for.options.selectedIndex].value;
  6. self.location='addapt.php?for=' + val ;
  7. }</script>
  8.  
  9. <?php
  10. if ($_SESSION['username'])
  11. echo "Welcome, ".$_SESSION['username']."<br><br>Click!<a href='logout.php'>HERE</a> to logout";
  12. else
  13. die ("<a href='index.php'>You must be logged in! </a>");
  14. $for=$_GET['for'];
  15. ?>
  16.  
  17. <form name="html" action="<?php echo "addedapt.php?for=".$for;?>" method="post">
  18.  
  19. <table border="4" width="100%">
  20. <center><h3>Add AP</h3></center>
  21.  
  22. <!--Opis-->
  23. <tr><td width="40%">Description:</td><td><input type="textarea" height="30" size="100" maxlength="1000" name="description"
  24. value= "<?php echo $_POST['description'];?>"></td>
  25.  
  26. <!--Data-->
  27. <tr><td>Due date:</td><td><input type="text" id="datepicker" runat="server" name="duedate" value="yyyy.mm.dd" ></td>
  28.  
  29. <tr><td>Select forum</td><td>[/html]
  30. <?php
  31. // polaczenia z baza i dalej zapytania
  32.  
  33.  
  34. $quer2=mysql_query("SELECT distinct F.idforum, F.typeofforum
  35. FROM Forums as F
  36. left join JoinFU as FU on F.idforum=FU.idforum
  37. WHERE FU.login='$_SESSION[username]'
  38. order by F.typeofforum
  39. ") or die("Query failed");
  40.  
  41.  
  42. $for=$_GET['for'];
  43.  
  44.  
  45. if(strlen($for) > 0 and !is_numeric($for))
  46. {
  47. echo "Data Error";
  48. }
  49.  
  50.  
  51. if(isset($for) and strlen($for) > 0)
  52. {
  53. $quer=mysql_query("SELECT DISTINCT login FROM JoinFU where idforum=$for order by login");
  54. }
  55. else
  56. {
  57. $quer=mysql_query("SELECT DISTINCT login FROM JoinFU order by login");
  58. }
  59.  
  60.  
  61. echo "<select name='for' onchange=\"reload(this.form)\" ><option value=''>Select one</option>";
  62. while($noticia2 = mysql_fetch_array($quer2))
  63. {
  64. if($noticia2['idforum']==$for or $noticia2['idforum']==$_POST['for'])
  65. {
  66. echo "<option selected value='$noticia2[idforum]'>$noticia2[typeofforum]</option>";
  67. }
  68.  
  69. else
  70. {
  71. echo "<option value='$noticia2[idforum]'>$noticia2[typeofforum]</option>";
  72. }
  73. }
  74. echo "</select>";
  75. ?>
  76.  
  77. <br/></td>
  78.  
  79. <tr><td>Uzytkownicy:</td><td>
  80. <?php echo "<select name='usrname'>";
  81.  
  82. while($noticia = mysql_fetch_array($quer))
  83. {
  84. echo "<option value='$noticia[login]'>$noticia[login]</option>";
  85.  
  86. }
  87. echo "</select>";
  88. ?>
  89. </td><br/><br/><br/>
  90. </table>
  91. <br/><br/>
  92.  
  93. <!--wysyłanie formularza, dane zostają przekazane do addedapt.php w celu wyświetlenia-->
  94. <input type="hidden" name="forumname" value='<?=$for?>'>
  95. <input type="hidden" name="userby" value='<?=$_SESSION['username']?>'>
  96. <input type="submit" value="save">
  97. </form>
  98.  
  99. </body>


Prosilabym o jakies sugestie bo juz siedze nad tym 3dzien i nie potrafie nic z tym zrobic
CuteOne
wstaw bbcode [ php ] [ /php ] bo czytać się tego nie da
gcdreak
localStorage

Przykład z jednej z moich aplikacji:
  1. function storePoints() {
  2. var urlArr = window.location.href.split('/'),
  3. page = urlArr[urlArr.length - 1].split('#')[0],
  4. storageIndex;
  5.  
  6. $('.player').each(function(el) {
  7. storageIndex = page + '_' + el;
  8. localStorage.setItem(storageIndex, $('.score', this).text());
  9. });
  10. }
  11.  
  12.  
  13. function retrievePoints() {
  14. var urlArr = window.location.href.split('/'),
  15. page = urlArr[urlArr.length - 1].split('#')[0],
  16. storageIndex,
  17. playerPoints;
  18.  
  19. $('.player').each(function(el) {
  20. storageIndex = page + '_' + el;
  21. playerPoints = localStorage.getItem(storageIndex);
  22. $('.score', this).text(playerPoints);
  23. });
  24. }
  25.  
  26.  
  27. function clearPoints() {
  28. var urlArr = window.location.href.split('/'),
  29. page = urlArr[urlArr.length - 1].split('#')[0];
  30.  
  31. $('.player').each(function(el) {
  32. storageIndex = page + '_' + el;
  33. localStorage.removeItem(storageIndex);
  34. $('.score', this).text(0);
  35. });
  36. }
CuteOne
Nie wszystkie przeglądarki go obsługują lepszym rozwiązaniem są ciacha
paula1710
Cytat(gcdreak @ 29.08.2011, 18:56:44 ) *
localStorage

Przykład z jednej z moich aplikacji:

niestety jestem kompletnym 'laikem' jezlei chodzi o Jave wiec niestety nie zawiele z tego rozumiem. :/

Cytat(CuteOne)
Nie wszystkie przeglądarki go obsługują lepszym rozwiązaniem są ciacha

cookies tzn jak?? szczerze to wiem ze musze gdzie ten opis i date przypisac... ale jak to zapamietac??
probowalam przez
  1. onchange =this.submit()
i fakt zapisuje do posta ale jak tylko zmieniam forum wszystko sie 'resetuje'.

pomysly mi sie skonczyly... pomozcie prosze.
CuteOne
google -> js cookie

google -> php cookie

google -> php update cookie

gcdreak
localStorage ogranicza się do 3 funkcji
  1. localStorage.setItem(nazwa_pola, wartosc);
  2. localStorage.getItem(nazwa_pola);
  3. localStorage.removeItem(nazwa_pola);


"Nie wszystkie przeglądarki go obsługują lepszym rozwiązaniem są ciacha"
wg mnie:
Ciacha - ciężkie operowanie ciachami
A jeśli chodzi o to, że nie wszystkie przeglądarki nie obsługują - jeśli ktoś używa statej przeglądarki, to niech wpisuje coś jeszcze raz i tak nie wie o możliwości uniknięcia tego, btw: korzystająć ze starej przeglądarki sam nie wie co traci. Z obsługą nie jest źle, a będzie lepiej. Warto się tym zainteresować, bo nie trzeba się dużo uczyć a możliwości ogromne.


PS: localStorage to JavaScript, a nie Java
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.