Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Java][AJAX][PHP]odświeżany div
Maciek1705
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


witam serdecznie jak zawsze z resztą. Mam być może mały problem którego nie potrafię rozwiązać już się z tym męczę baaardzo długo i nie wiem co i jak źle robię. Mam 2 pliki pierwszy jest taki:
  1. <script type='text/javascript' language="JavaScript">
  2. var object = false;
  3. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  4. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  5. function getData(dataSource, divID)
  6. {
  7. if (object.readyState==4 || object.readyState==0)
  8. {
  9. var obj = document.getElementById(divID);
  10. object.open("GET", dataSource);
  11. object.onreadystatechange = function()
  12. {
  13. if (object.readyState == 4 && object.status == 200)
  14. obj.innerHTML= object.responseText;
  15. }
  16. object.send(null);
  17. }
  18. }
  19. function odswiezaj()
  20. {
  21. getData('plik.php','div');
  22. setTimeout("odswiezaj()", 1000);
  23. }
  24. </head>
  25.  
  26. <div id='div'></div>
  27. <script type='text/javascript' language="JavaScript">
  28. odswiezaj();
  29. </body>
  30. </html>


drugi plik jest tym plikiem odświeżanym przez funkcję odswiezaj i wygląda on tak:
  1. <form id='frmZamDzis' action='ccc.php' method='get'>
  2. <fieldset><legend>Zamówienia dzisiejsze</legend>
  3. <table border='1' id='tabZamDzis'>
  4. <tr>
  5. <td class='NrZamowienia'>Numer zamówienia</td>
  6. <td class='Login'>Login</td>
  7. <td class='DataZam'>Data zamówienia</td>
  8. <td class='CenaZam'>Kwota zamówienia</td>
  9. <td class='Faktura'>Faktura VAT?</td>
  10. <td class='Status'>Status</td>
  11. <td class='Szczegoly'>Zobacz szczegóły</td>
  12. <td>Zrealizowano?</td>
  13. </tr>
  14. <?php
  15. while($wiersz = mssql_fetch_array($wyniki))
  16. {
  17. <tr>
  18. <td class='NrZamowienia'>$NrZamowienia</td>
  19. <td class='Login'>$Login</td>
  20. <td class='DataZam'>$DataZamowieniaZM</td>
  21. <td class='CenaZam'>$KwotaCalkowita</td>
  22. <td class='Faktura'>$CzyFaktura</td>
  23. <td class='Status'>$Status</td>
  24. <td class='Szczegoly'>Pokaż</td>
  25. <td><input type='checkbox' name='NrZamowienia[]' value='$NrZamowienia' /></td>
  26. </tr>");
  27. }
  28. ?>
  29. <tr><input type='submit' name='wyslij' value='Wyślij'></tr>
  30. </table>
  31. </fieldset>
  32. </form>


oczywiście w tym 2 pliku plik.php dane są pobierane z bazy itp ale nie w tym rzecz chodzi mi o to jak zrobić aby po kliknięciu w jakieś wybrane pola checkbox których przypuśćmy w bazie będzie 20 i np ja wybieram sobie jakiś 5 zaznaczam je elegancko i co się dzieje? otóż po przeładowaniu plik.php za pomocą funkcji odświeżaj zaznaczone checkboxy przestają być zaznaczone. Moje pytanie brzmi jak zrobić aby raz zaznaczone pozostawały nadal zaznaczone do momentu wysłania formularza mimo ciągłego przeładowania strony?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DiH
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


Dane zczytujesz za każdym z bazy więc przy każdym wysłaniu zapytania (musi to być POST, nie GET) zapisuj ich wartości lub stany do bazy. Wtedy przy odświeżeniu rozpoznasz czy i które powinny być zaznaczone. Zamiast wysyłania zapytania co sekundę wymyśl lepiej coś mniej transferożernego, choćby wywołanie przy onchange, lub onselect jakiegoś elementu. Warto.

Łopatologicznie mógłbyś stworzyć w bazie pole, w którym przechowywałbyś, które checkboxy mają być zaznaczone, np. pole `IsSelectedCheckbox`, a w nim:
Kod
1|1|0|0|1

Czyli, że 1, 2 i 5 checkbox mają być zaznaczone.

Przy wyświetlaniu samej strony, na której są checkboxy sprawdzasz, które zaznaczyć:
  1. $c = mysql_fetch_array($zapytanie);
  2. $checked = array();
  3. $checkboxy = explode("|",$c['IsSelectedCheckbox']);
  4. for($i = 0; $i < sizeof($checkboxy); $i++) {
  5. if($checkboxy[$i]==1) {
  6. $checked[$i] = 'checked="checked"';
  7. }
  8. else {
  9. $checked[$i] = '';
  10. }
  11. echo '<input '.$checked[$i].' type="checkbox" name="sth"/>';
  12. }

Mogą być błędy - pisane w pośpiechu
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: 8.10.2025 - 14:15