Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Skrypt generujący kod PHP po określonym czasie
Forum PHP.pl > Forum > Przedszkole
slimboot
Poniższy skrypt tworzy odliczanie czasu 3s. po czym generuje button z odstyłaczem. Próbowałem na kilkanascie sposobów, ale kompletnie nie znam się na js. Zależy mi by zmodyfikowac tak ten skrypt, by wygenerował kilka buttonów z róznymi odsyłaczami, a jeszcze lepiej jak wygeneruje kawałek kodu PHP. Dzięki za podpowiedź

Kod
<body onload="time()">



        <script type="text/javascript">
        var sec = 3;
        function time() {
            if(sec >= 1) {
                sec--;
                document.getElementById('odliczanieczasu').innerHTML=(sec);
                setTimeout("time();", 1000);
            }
        }
        </script>                    

<script type="text/javascript">
function pokazprzycisk(){
document.getElementById('przycisk').style.display='block';
return false;
}
setTimeout("pokazprzycisk()",3*1000);
</script>

<span id="odliczanieczasu">3</span><br/>
<input class="special" type="button" value="Przejdz do strony" style="display: none;" id="przycisk"
onclick="location.href = 'strona.php'; return false;">





</body>
PrinceOfPersia
Cytat
Poniższy skrypt tworzy odliczanie czasu 3s. po czym generuje button z odstyłaczem. Próbowałem na kilkanascie sposobów, by skrypt wygenerował 3 różne buttony z trzema róznymi odsyłaczami, jednak za nic mi nie wychodzi.

może dlatego, że ten skrypt nie generuje wcale buttona, a jedynie pokazuje (style.display='block'; ) już istniejący? oneeyedsmiley02.png Ew. jak chcesz mieć szablon przycisku w HTML, a potem na podstawie jego tworzyć nowe, możesz go sklonować:

[JAVASCRIPT] pobierz, plaintext
  1. <body onload="time()">
  2.  
  3.  
  4.  
  5. <script type="text/javascript">
  6. var sec = 3;
  7. function time() {
  8. if(sec >= 1) {
  9. sec--;
  10. document.getElementById('odliczanieczasu').innerHTML=(sec);
  11. setTimeout("time();", 1000);
  12. }
  13. }
  14. </script>
  15.  
  16. <script type="text/javascript">
  17. function pokazprzycisk(){
  18. var links = ['strona.php', 'strona2.php', 'strona3.php'];
  19. for (var i = 0; i < 3; i++) {
  20. var klonPrzycisku = document.getElementById('przycisk').cloneNode();
  21. klonPrzycisku.style.display = "block";
  22. klonPrzycisku.id = "przycisk" + i;
  23. klonPrzycisku.value += "(" + (i+1) + ")";
  24. document.body.appendChild(klonPrzycisku);
  25. klonPrzycisku.onclick = (function(i) { return function() {location.href = links[i]; }}(i));
  26. }
  27.  
  28.  
  29. return false;
  30. }
  31.  
  32. setTimeout("pokazprzycisk()",3*1000);
  33. </script>
  34.  
  35. <span id="odliczanieczasu">3</span><br/>
  36. <input class="special" type="button" value="Przejdz do strony" style="display: none;" id="przycisk"
  37. onclick="location.href = 'strona.php'; return false;">
  38.  
  39.  
  40. </body>
[JAVASCRIPT] pobierz, plaintext


EDIT : swoją drogą nie rozumiem czemu nie możesz wstawić tych przycisków w <a> i mieć link normalnie...

EDIT 2: pomyłka w skrypcie, ale już poprawiłem.
slimboot
Świetnie! W tej jednej kwesti mi pomogłeś, co do normalnego odsyłacza <a>, sam nie rozumiem, nawet jak to wstawić. Js. dziś dla mnie zbyt magiczna:) A skryptu nie pisałem, tylko skopiowałem od kogoś z netu.

Tymczasem co do drugiej sprawy, czy łatwo jest zmodyfikowac ten skrypt, by wytworzył zamiast buttonów, kawałek skryptu Php

<? echo("Jakiś tekst"); ?>

Czy takie coś byłoby możliwe?

A i jeszcze jedno, skrypt działa fajnie, ale z góry narzuca nazwe odsyłaczy 1, 2 i 3
PrinceOfPersia
Cytat(slimboot @ 27.04.2013, 13:29:23 ) *
Świetnie! W tej jednej kwesti mi pomogłeś, co do normalnego odsyłacza <a>, sam nie rozumiem, nawet jak to wstawić. Js. dziś dla mnie zbyt magiczna:) A skryptu nie pisałem, tylko skopiowałem od kogoś z netu.

Tymczasem co do drugiej sprawy, czy łatwo jest zmodyfikowac ten skrypt, by wytworzył zamiast buttonów, kawałek skryptu Php

<? echo("Jakiś tekst"); ?>

Czy takie coś byłoby możliwe?

raczej nie, bo JavaScript działa (w tym przypadku) po stronie przeglądarki, a PHP po stronie serwera - więc generować sobie możesz dużo - ale i tak nie odpalisz tego kodu.

No i w sumie po co miałbyś to robić? Jak chcesz coś wyświetlić na ekranie przeglądarki, to możesz to w JavaScript zrobić (tylko nie robisz wtedy żadnego echo oczywiście, tylko operujesz na elementach HTML).

Cytat
A skryptu nie pisałem, tylko skopiowałem od kogoś z netu.

Wydaje mi się, że same kłopoty są z takim kopiowaniem skryptów. Rozumiem jakieś gotowe do użycia komponenty, widżety na stronę - czemu nie? Każdy laik może sobie ściągnąć np. komentarze facebooka na stronę

Ale jak już babrzemy się na niższym poziomie (programowania, skryptów) to należałoby znać te podstawy, bo bez tego nic nie zrobisz. Więc albo ucz się programowania web (przynajmniej rok nauki, żeby zacząć ogarniać cokolwiek), albo wyszukaj jakieś prostsze w użyciu dla laika widżety, a nie męcz się ze skryptami wymagającymi znajomości programowania (większość problemów w dziale przedszkole bierze się chyba właśnie z tego, że ktoś nieumiejętnie zastosował czyjś skrypt, nie znając podstaw).


Cytat
A i jeszcze jedno, skrypt działa fajnie, ale z góry narzuca nazwe odsyłaczy 1, 2 i 3

no właśnie do tego przydaje się umiejętność programowania wink.gif ta linijka odpowiada za napis na przycisku:
Kod
klonPrzycisku.value += "(" + (i+1) + ")";

możesz ją zmienić odpowiednio (tylko na co chcesz?)
slimboot
Doskonale zadaje sobie sprawe z tego co napisałeś, a nawet założe sie, ze każdy z forumowiczów, chciałby umieć pistać html, znać css i programować bez problemu w PHP i Java i w pozostałych językach, jakiekolwiek tam znajdziemy. Sam niedawno przygladałem się flashowi, a ostatnio c++, ale nie ma na to tyle czasu, by się wszystkiego od razu uczyć.

No ale niestety, co do mnie, już dużym sukcesem uważam fakt, że nauczyłem się dużo z samego PHP z pomoca tegoż to forum(dzięki specool.gif ) i w tym raczej nie korzystam z przeklejanych faragmentów, tylko w większości sam piszę. Natomiast w jednym miejscu potrzebowałem odliczania w Jawa, bo php tego nie robi. No a dla samego kawałka skryptu, nie będę sie przecież uczył całego języka, jak to napisałeś, rok czasu facepalmxd.gif

Co do wspomnianej przez ciebie linijki, przyglądałem się... próbowałem... i nic.
Jeżeli chciałbym by nazwy linków, nie miały liczb, ale kolejno przykłądowe nazwy: a, b i c, co wtedy?
PrinceOfPersia
Cytat
No a dla samego kawałka skryptu, nie będę sie przecież uczył całego języka, jak to napisałeś, rok czasu

no to nie bierz się za JS, tylko zrób to w HTML (który jak przypuszczam znasz, bo inaczej byś chyba nie uczył się PHP...). Zrób po prostu 3 różne buttony w HTMLu i wsadź je w pojemnik ze stylem display:none:

Kod
<div id="przyciski" style="display:none">
<input class="special" type="button" value="Przejdz do strony" id="przycisk-1"
onclick="location.href = 'ADRES.php'; return false;">
<input class="special" type="button" value="Przejdz do strony"  id="przycisk-2"
onclick="location.href = 'ADRES.php'; return false;">
<input class="special" type="button" value="Przejdz do strony" id="przycisk-3"
onclick="location.href = 'ADRES.php'; return false;">
</div>


a w kodzie JS napisz tylko tyle:
[JAVASCRIPT] pobierz, plaintext
  1. function pokazPrzyciski() {
  2. document.getElementById('przyciski').style.display = 'block';
  3. }
  4. setTimeout(pokazPrzyciski,3*1000);
[JAVASCRIPT] pobierz, plaintext
slimboot
Ok, super, cieszę sie, bardzo mi pomogłeś, dzięki yahoo.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.