Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]$_GET w pliku JS.
Forum PHP.pl > Forum > Przedszkole
qqwwq
Witam, czy jest możliwe, aby zrobić w pliku JS coś takiego:

Kod
if ($_GET['add_task']){
function add_on() { ... }
function add_off() { ,,, }
} else {
function add_on() { . . . }
function add_off() { , , , }
}


Chodzi mi o to, że przy dodawaniu wpisu do bazy, zwracam sobie w linku np. add_task=1 , jeżeli się wszystko udało. I w zależności od tego czy ktoś właśnie chciał dodać jakiś wpis, czy nie, chciał bym aby funkcje add_on() oraz add_off() się troszeczkę różniły ( dokładnie to ta różnica będzie w ładowaniu tła do przycisku, oraz w display:none / block; ... tylko że oczywiście taki zapis jak powyżej, niestety nie działa. Więc pytanie - czy w pliku js, w ogóle mogę się odwołać do $_GET?

Jakieś wyjaśnienia czy też tłumaczenie co ja głupi źle robie - mile widziane winksmiley.jpg
Z góry serdecznie dziękuję za pomoc.
luck
Próbowałeś tak prostego sposobu? Tylko ten kod musisz oczywiście osadzić w pliku .php.
  1. <script type="text/javascript">
  2. var addTask = false;
  3. <?php if(isset($_GET['add_task'])): ?>
  4. addTask = <?php echo $_GET['add_task'] ?>;
  5. <?php endif; ?>
  6. if (addTask){
  7. function add_on() { ... }
  8. function add_off() { ,,, }
  9. } else {
  10. function add_on() { . . . }
  11. function add_off() { , , , }
  12. }
  13. </script>

Edit: brakło średnika...
qqwwq
Hmm, działa to, ale połowicznie. Tzn, przedtem jak kombinowałem, to w ogóle przestawało js działać ( na zasadzie kliknięcia na div'a o danym ID coś się działo ), teraz to cały czas działa, ale niestety bez względu czy w linku mam gołe index.php, czy też index.php?add_task=2 itp, działa tylko ta pierwsza zakodowana wersja, czyli if (addTask) ...

Przy okazji, w międzyczasie pomysł trochę ewoulował, ale to chyba nie problem, bo na starej koncepcji też mi niestety nie działa.

Kod
var addTask = false;
<?php if(isset($_GET['add_task'])){ ?>
addTask = <?php echo $_GET['add_task'] ?>;
<?php }; ?>
if (addTask != false){

$(document).ready(
    function() {
        $("#header_add").click(
            function () {
                $('#content_add').toggle();
            }
        )
        
        .toggle(
            function() {
                $("#header_add").css("background","url(\"img/plus_active.png\") left no-repeat");
            },
            function() {
                $("#header_add").css("background","url(\"img/plus.png\") left no-repeat");
            }
        );    
    }
);

}

if (addTask = false) {

$(document).ready(
    function() {
        $("#header_add").click(
            function () {
                $('#content_add').toggle();
            }
        )
        
        .toggle(
            function() {
                $("#header_add").css("background","url(\"img/plus.png\") left no-repeat");
            },
            function() {
                $("#header_add").css("background","url(\"img/plus_active.png\") left no-repeat");
            }
        );    
    }
);

}


Próbowałem z różnymi warunkami, typu if (addTask), if (!addTask) itp, ale póki co zostawiłem tak. Co ciekawe, jeżeli po pierwszym if damy else - to w ogóle żadna funkcja nie działa - mimo kliknięcia na div'a nic się nie dzieje.

Przyszedł mi od razu inny pomysł do głowy. Czy jest możliwe, aby sprawdzenie czy istnieje $_GET['add_task'], odbywało się w pliku index.php, i zapisywało wynik tego do jakiejś zmiennej globalnej, czy coś takiego - aby później z tej zmiennej bezpośrednio mógł plik js korzystać? Chyba bredzę, bo plik js jest ładowany w sekcji head, a zmienną z $_GET['add_task'] bym dopiero w body mógł jakoś tam stworzyć.
luck
Zerknij na to:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  3. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  4. </head>
  5. <script type="text/javascript">
  6. var addTask = false;
  7. <?php if(isset($_GET['add_task'])){ ?>
  8. addTask = <?php echo $_GET['add_task'] ?>;
  9. <?php }; ?>
  10. if (addTask != false){
  11. $(document).ready(
  12. function() {
  13. $("#header_add").click(
  14. function () {
  15. $('#content_add').toggle();
  16. }
  17. )
  18. .toggle(
  19. function() {
  20. $("#header_add").css("background","url(\"img/plus_active.png\") left no-repeat");
  21. },
  22. function() {
  23. $("#header_add").css("background","url(\"img/plus.png\") left no-repeat");
  24. }
  25. );
  26. }
  27. );
  28. } else {
  29. $(document).ready(
  30. function() {
  31. $("#header_add").click(
  32. function () {
  33. $('#content_add').toggle();
  34. }
  35. )
  36. .toggle(
  37. function() {
  38. $("#header_add").css("background","url(\"img/plus.png\") left no-repeat");
  39. },
  40. function() {
  41. $("#header_add").css("background","url(\"img/plus_active.png\") left no-repeat");
  42. }
  43. );
  44. }
  45. );
  46. }
  47. <div id="header_add">header_add</div>
  48. <div id="content_add">content_add</div>
  49. </body>
  50. </html>

Skopiuj sobie ten kod i spróbuj odpalić. BTW: "if (addTask = false)" w tym miejscu chyba zjadłeś jeden znak równości.
qqwwq
Niestety, ale to mi nadal nie działa. Sam kod js mam w oddzielnym pliku - czy to coś zmienia?
Spróbowałem jeszcze jakąś inną funkcję zamieścić w if'ie:

if (addTask == false){

}

I niestety, w takim wypadku nie działa owa funkcja, jeśli jest != false, to działa, niezależnie czy w linku mam owe add_task=1 itd, czy nie mam. Więc wygląda na to, że mimo zadeklarowania na początku var addTask = false; to wartość zmiennej addTask i tak się zmienia, i zawiera coś innego niż false - oczywiście jeśli dobrze rozumuję.
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.