Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [advajax] kolejne wiadomości niezależe od siebie
Forum PHP.pl > Forum > XML, AJAX
nitro18
Chodzi mi o efekt czegoś takiego.

mam plik polecenia.php
  1. <?
  2.  
  3. //zapis do bazy
  4.  
  5. if($zapisano){echo 'ok'; else 'no';
  6.  
  7. //zapis2 do bazy
  8.  
  9. if($zapisano){echo 'ok1' else 'no1';
  10.  
  11. ?>



i teraz mam plik ajax.php

kiedy zapisano do bazy, wtedy za pomocą ajax wyświetlam komunikat pierwszy,
kiedy zostanie następny zapisany do bazy drugie, za pomocą ajax wyświetlam pod spodem drugi komunikat...

ma ktoś jakiś pomysł?
Z góry dziękuję smile.gif
Pozdrawiam
chaos_code
Niestety nie wiem o co Ci konkretnie chodzi. Może pomogłoby gdybyś powiedział po co to chcesz zrobić.
Kolejne zapisywane do bazy informacje są całkowicie niezależne?
A może zapisywane są do tej samej tabeli?
Tabela jest na starcie pusta i chcesz odpowiedzieć jednym komunikatem na wpisanie do niej pierwszego elementu, a drugim komunikatem na wpisywanie kolejnych?
Inaczej?

Więcej szczegółów poproszę. winksmiley.jpg
nitro18
no to inaczej...

widziałem coś takiego podczas instalacji moodle'a.
Kiedy dodawał informacje do tabel, to bez odświeżenia strony pokazywał że dodał do tabeli x, a gdy dodał do tabeli y, to wyświetlał komunikat że dodał do tabeli y, itd....

czyli chodzi mi głownie oto że gdy zostanie spełnione jakieś polecenie to wyświetlony zostaje komunikat, następnie parser php leci dalej i gdy zostanie spełnione kolejne to wyświetla kolejny komunikat...


pewnie znowu coś namieszałem sad.gif

to powiedzcie jak mam zrobić żeby po pierwszym komunikacie zatrzymać na chwilę i wyświetlić kolejny tekst bo sleep nie działa sad.gif

  1. <?
  2. echo 'jeden';
  3. sleep(5);
  4. echo 'dwa';
  5. ?>
chaos_code
Może taki przykład działania advAjaxa-a

plik glowny:
  1. <title>....</title>
  2. <script language="JavaScript" type="text/javascript" src="advajax.js"></script>
  3.  
  4. function save()
  5. {
  6. advAJAX.submit(document.getElementById("form"), {
  7. onSuccess : function(obj) { alert(obj.responseText); document.getElementById("pom").innerHTML = "Zmieniony tekst"; },
  8. onError : function(obj) { alert("Error: " + obj.status); }
  9. }); // zamiast alerta można zrobić jakieś przepisanie do div ( poprzez innerHTML), żeby lepiej wyglądało; zresztą już dodałem
  10. }
  11. </script>
  12. </head>
  13. <form action="pomocniczy.php" method="post" id="form"> <br/>
  14. Dla testu wpisać :0 lub 1 -> <input id="" name="e1" /> <br/>
  15. <input type="submit" value="zapisz(standard)" name="e10" />
  16. </form>
  17. <input type="submit" onclick="save();" value="zapisz(advAjax)" name="e110" />
  18. </body>
  19. </html>



plik pomocniczy: pomocniczy.php
  1. <?php
  2. if ( $_POST['e1']) echo "Wpisałeś jedynkę? - może. Ale na pewno nie wpisałeś zera. ;) ";
  3. else
  4. echo "Wpisałeś zero"
  5. ?>

- bez ukośników

Może coś pomoże.
Oczywiście zamiast prostego IF-a sprawdzającego przekazywany element formularza należałoby zastosować zapytanie do bazy czy konkretnej tabeli sprawdzające czy coś już tam jest.

Lub tylko zapisać coś (dane z formularza) do bazy i zwrócić info, że się udało. smile.gif

Co do odstępu czasu, to można to zrobić np w javascript, timeDelay, albo coś podobnego, dokładnie nie pamiętam, a w php, to nie wiem.
nitro18
no to jeszcze inaczej. Mam div

<div id="iden">

i teraz robie tak...
pojawia się pierwszy tekst, skrypt zatrzymuje się tutaj na chwilę (powiedzmy 5 sek.),
następnie do diva jest przekazywany drugi tekst (znowu na 5 sek. albo 6)

Czy da sie jakoś to napisać?
chaos_code
Na przykład tak:
  1. function cos2()
  2. {
  3. document.getElementById("ala").innerHTML = '1111111111111111111111111111';
  4. }
  5. function cos3()
  6. {
  7. document.getElementById("ala").innerHTML = '22222222222222222222222222222';
  8. }
  9. function cos()
  10. {
  11.  
  12. setTimeout('cos2()',1000);
  13. setTimeout('cos3()',2000);
  14. }
  15.  
  16. <body onload='cos()'>
  17. <div id='ala'>tekst</div>
  18. </body>
  19. </html>


...choć można zdecydowanie ładniej. winksmiley.jpg
nitro18
ooo... i oto mi właśnie chodziło smile.gif dzięki smile.gif
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.