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
CyberDuck_
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

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


A ja mam inny problem.
Dotarlem do tego skryptu poprzez google poniewaz szukalem odwpowiedzi najpierw tam.
Najpierw szukalem skryptu, ktory by mi odczytywal zawartosc pliku umieszczonego na
serwerze do zmiennej i znalazlem wlasnie ten skrypt i po malych przerobkach
wyglada on tak :
  1. <html>
  2. <head>
  3.  
  4. </head>
  5.  
  6. <body>
  7. <DIV id="zegar">tutaj</div>
  8. <script language="javascript">
  9. var costam = "";
  10. // tworzymy zmienna
  11. var object = false;
  12. // tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
  13. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  14. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  15. // ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
  16. // DIVa poprzez obiekt XMLHttpRequest
  17. function getData(dataSource, divID)
  18. {
  19. // kontynuuje wylacznie gdy obiekt nie jest zajety
  20. if (object.readyState==4 || object.readyState==0)
  21. {
  22. // tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
  23. var obj = document.getElementById(divID);
  24.  
  25. // czyta z pliku lub wykonuje skrypt
  26. object.open("GET", dataSource);
  27. // definiuje metode obslugi odpowiedzi serwera
  28. object.onreadystatechange = function()
  29. {
  30. // kontynuuje jesli transmisja zostala zakonczona powodzeniem
  31. if (object.readyState == 4 && object.status == 200)
  32. costam= object.responseText.substr(0,8);
  33. }
  34. // wysyla zadanie do serwera
  35. object.send(null);
  36. }
  37. }
  38. // w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
  39. // oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
  40. function odswiezaj()
  41. {
  42. getData('news.php','zegar');
  43. setTimeout("odswiezaj()", 1000);
  44. document.getElementById("zegar").innerHTML = costam;
  45. }
  46. </script>
  47.  
  48. <script language=javascript>
  49. odswiezaj()
  50. </script>
  51. </body>
  52. </html>

No i ladnie dziala bo jak zapuszcze te stronke to sie pojawia miedzy "div id zegar" zawartosc tego pliku
news.php i jesli go zmienie na serwerze to ladnie sie zmienia to na stronie.
Zmiana tyczy sie jedynie tego, ze zawartosc pliku jest ladowana do zmiennej 'costam' ...
Ale jest jedno ale. Skrypt dziala w FF i Opera, a w IE nie chce dzialac.
Znaczy pobiera przy uruchomieniu zawartosc z pliku i umieszcza w zmiennej, a nastepnie
jesli zmienie zawartosc pliku news.php na serwerze to juz ta zmiana nie jest widoczna
na stronie. Inaczej niz w FF i Opera. Jak zrobic zeby to dzialalo tez w IE ?

Chcialem ten skrypt wykorzystac do pewnych rzeczy na stronie. Znaczy dalej
dopisalbym, ze jesli zmieni sie zawartosc pliku news.php na inna niz przy uruchamianiu
to wtedy zostanie wywoalana/wykonana jakas lokacja pliku na serwerze, ale jesli to nie ruszy
pod IE to dyskwalifikuje to zastosowanie tego skryptu ...
Malo tego zauwazylem pewna prawidlowosc, ze jesli otworze dodatkowa zakladke
w IE i uruchomie ten skrypt tak samo jak w pierwszej zakladce to zaladuje sie nowa zawartosc
i zmienia sie tez ona w pierwszej zakladce tak jakby skrypt mial dzialac prawidlowo.

I co nikt ze specow mnie nie poratuje ?
Bardzo prosze (IMG:style_emoticons/default/wstydnis.gif)

Ten post edytował CyberDuck_ 14.06.2010, 14:40:53
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: 4.10.2025 - 22:28