Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][JavaScript]$_GET w pliku JS.
qqwwq
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 14.09.2009

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


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 (IMG:style_emoticons/default/winksmiley.jpg)
Z góry serdecznie dziękuję za pomoc.

Ten post edytował qqwwq 20.04.2010, 00:22:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
luck
post
Post #2





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

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


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...

Ten post edytował luck 20.04.2010, 06:27:45
Go to the top of the page
+Quote Post
qqwwq
post
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 14.09.2009

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


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ć.
Go to the top of the page
+Quote Post
luck
post
Post #4





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

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


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.
Go to the top of the page
+Quote Post
qqwwq
post
Post #5





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 14.09.2009

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


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ę.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 20:54