Skocz do zawartości
Madness

[JS/PHP] Problem ze zczytaniem zmiennej

Rekomendowane odpowiedzi

Witam. :bye1:

Problem jest następujący, w php stworzyłem sobie zmienną $zCount = 3, następnie w js starałem się zczytać wartość tej zmiennej, ale bez skutku.

Zczytywałem zgodnie z tym co piszą na forach: count = "<?php $zCount ?>";

Nie wiem, czy ja robie coś źle, czy trzeba to jakoś inaczej zrobić ?

W internecie podawali też zapis "<?= $zCount ?>", ale też bez skutku.

To w zasadzie jedyne co robie w funkcji js. :mellow:

Z góry thx za pomoc.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

count = "<?php echo $zCount; ?>";

To powinno być ok.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jak wypisuje sobie potem zmienną alertem, to ma taką wartość: <?php echo $variable; ?>

Za nic nie chce wczytać wartości tej zmiennej.

 

Przed znacznikiem html mam:

 <?php 
  $variable = 3;
?>

 

I w head wczytuje plik js, z czego funkcja wygląda tak:

function getZCount()
{
count = "<?php echo $variable; ?>";
alert( count );
}

 

I po wyświetleniu się alerta, pokazuje wartość: <?php echo $variable; ?>

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

No to ta funkcja jest poza plikiem PHP? Zasięg zmiennych nie sięga za pliki.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

W takim razie, możesz mi powiedzieć jak to zrobić ?

W zasadzie chce tylko sprawdzić ile plików jest w danym katalogu, z czego czytałem, że js nie ma takiej opcji a php udostępnia funkcje

count(glob('scieżka')).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Napisz co dokładnie chcesz uzyskać, bo nic z tego nie rozumiem.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Chce się dowiedzieć ile plików mam w danym folderze.

Ale chce tą ilość plików zachować w zmiennej utworzonej w skrypcie js.

Teraz pytam was, jak to zrobić?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Możesz wydrukować tą zmienną do jakiegoś diva a potem ją wczytać jako tekst :). Albo cookies?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

PHP jest językiem wykonywanym po stronie serwera, natomiast Javascript językiem wykonywanym po stronie klienta. To co wygenerujesz phpem jako html, będzie tylko statycznym tekstem, chyba, że phpem wygenerujesz stronę htmlową ze znacznikiem script i skomponujesz odpowiedni kod javascriptowy, np:

<html>
    <head>
    </head>
    <body>
        <script>alert( <?php echo $zmienna;?> );</script>
    </body>
</html>

To co Tobie podano wcześniej, to jest rozwiązanie tylko właściwe gdy kod javascriptowy jest generowany przez phpa.

 

Natomiast jeśli chcesz wczytywać osobny, zewnętrzny plik javascriptowy, to sprawa wygląda zupełnie inaczej. Są dwa wyjścia:

1. Wyłuskiwanie z treści strony odpowiedniej wartości:

a) Generujesz w phpie specjalny znacznik z wartością i nadajesz id temu znacznikowi.

B) Tworzysz w javascripcie funkcję, która uruchomi się po wczytaniu całej treści html.

c) Odniesiesz się do znacznika poprzez id i pobierzesz tekst znacznika.

Przykład:

<html>
    <head>
        <script>
            function start() {
                var zm = document.getElementById('zmienna');
                alert(zm.innerText);
            }
            window.onload = start;
        </script>
    </head>
    <body>

        <div id="zmienna" hidden><?php echo $zmienna;?></div>
    </body>
</html>

W powyższym przykładzie treść js wrzucasz w osobny plik javascriptowy linkowany w head.

 

Drugi sposób to po prostu specjalne zapytanie ajaxowe do strony php, która zwróci tylko wartość zmiennej np. poprzez strukturę json. W tym celu dla ułatwienia skorzystaj z jquery.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Dobra, dzięki nie mam się co bawić w ajaxa(zwłaszcza, że nic z niego nie umiem), skorzystam z tego sposobu w którym wartość zapisuje do znacznika, a potem sobie w js z niego odczytam. :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A nie może być po prostu:

<html>
    <head>
        <script type="javascript">
            var obj = {
                zmienna: <?php echo $zmienna; ?>,
            };
        </script>
        <script type="javascript" src="plik.js"></script>
    </head>
    <body>
        (...)
    </body>
</html>

?

 

A plik JS może wyglądać tak:

window.onload = function() {
    alert(obj.zmienna);
}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Szczerze to, jak odpaliłem twój kod na webserv'ie, to alert się nawet nie wyświetlił.

Zedytowałem go tylko w ten sposób, że zamiast wypisywania zmiennej, wypisałem '3' w php.

W przypadku kodu Ranmusa, to alert wypisuje Undefined, a jak zamienie innerText na innerHTML, to <!--?php echo "3"; ?-->.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

@Kongrad-GM:

 

Ano fakt. Te rozwiązane zapodane przez Ciebie nawet na gmclanie użyłem, hehehe.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Kongrad-GM
Dzięgki ;_;

 

Szczerze to, jak odpaliłem twój kod na webserv'ie, to alert się nawet nie wyświetlił.

Zedytowałem go tylko w ten sposób, że zamiast wypisywania zmiennej, wypisałem '3' w php.

W przypadku kodu Ranmusa, to alert wypisuje Undefined, a jak zamienie innerText na innerHTML, to <!--?php echo "3"; ?-->.

Zapewne serwer nie widzi pliku JS. Jeżeli korzystasz z Chrome/Firefox użyj narzędzi pod klawiszem F12, i sprawdź czy się w ogóle plik ładuje.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

:)

 

Do tego lepiej nie debugować alertem, tylko np. pod Chrome przy pomocy podglądu w narzędziach developerskich lepiej używać funkcji js: console.log(...). Dzięki temu można ładnie debugować nie tylko wartości lecz całe struktury obiektów.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ok narazie nie chce mi się w to bawić, a mam na to jeszcze czas. Póki co dzięki za rady, może jutro się za to wezme ^^

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×