Jak Przekazać Zmienną?

Spisu treści:

Jak Przekazać Zmienną?
Jak Przekazać Zmienną?

Wideo: Jak Przekazać Zmienną?

Wideo: Jak Przekazać Zmienną?
Wideo: Jak przekazać tajną informację? 2024, Grudzień
Anonim

Aby zorganizować interaktywną komunikację między odwiedzającym a witryną (a raczej przeglądarką z serwerem sieciowym), programista musi zapewnić scenariusze wymiany danych między nimi. Rozważmy kilka prostych opcji organizowania transferu zmiennych ze skryptu JavaScrip klienta do skryptu PHP serwera i odwrotnie.

Przekazywanie danych z PHP do JavaScript i odwrotnie
Przekazywanie danych z PHP do JavaScript i odwrotnie

Czy to jest to konieczne

Podstawowa znajomość języków PHP, JavaScript i HTML

Instrukcje

Krok 1

Na etapie tworzenia strony nie jest trudno przenieść zmienną wraz z jej wartością ze skryptu php do skryptu JavaScript. Skrypt PHP sam generuje kod HTML żądanej strony, w tym zawarte w niej skrypty. Oznacza to, że może wpisać do kodu JavaScript dowolne zmienne, które należy przekazać wraz z ich wartościami. Na przykład ten skrypt php przekaże do skryptu klienta zmienną o nazwie "CzasSerwera" zawierającą aktualny czas serwera w formacie GODZINA:MINUTA:

<?

$ JSvarName = 'CzasSerwera';

$JSvarValue = data ('H:i');

$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';

print ''. $ JScode.'alert ("I teraz na serwerze" + '.$JSvarName.');'

?>

Przekazywanie zmiennej i jej wartości z PHP do JavaScript
Przekazywanie zmiennej i jej wartości z PHP do JavaScript

Krok 2

Najprostszy sposób przekazywania nazw i wartości zmiennych w przeciwnym kierunku (ze skryptu JS w przeglądarce klienta do skryptu PHP na serwerze WWW) może wyglądać tak w kodzie HTML strony:

var now = nowa data ();

var NazwaZmiennej = 'CzasKlienta';

var varValue = now.getHours () + ":" + now.getMinutes ();

window.location.href = 'https://sa/test2.php?' + nazwa_zmiennej + '=' wartość_zmiennej;

Skrypt ten wyśle do skryptu test2.php nazwę zmiennej "clientTime" i jej wartość zawierającą aktualny czas komputera w tym samym formacie GODZINA:MINUTA. Ta metoda przesyłania danych nazywana jest "synchroniczną" - spowoduje natychmiastowe przeładowanie strony. Dokładniej, zamiast bieżącej strony, wynik działania skryptu test2.php zostanie załadowany do przeglądarki. Kod tego skryptu php może wyglądać tak:

<?

if ($ _ GET) echo 'Otrzymana zmienna'.key ($ _ GET) '=' $ _ GET [klucz ($ _ GET)];

?>

Możesz połączyć wszystkie trzy rozważane części kodu do przekazywania zmiennych z serwera do przeglądarki i z powrotem do jednego pliku php w ten sposób:

<?

if ($ _ GET) echo 'Otrzymana zmienna'.key ($ _ GET) '=' $ _ GET [klucz ($ _ GET)];

$ JSvarName = 'CzasSerwera';

$JSvarValue = data ('H:i');

$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';

print ''. $ JScode.'alert ("I teraz na serwerze" + '.$JSvarName.');'

?>

funkcja sendData () {

var now = nowa data ();

var NazwaZmiennej = 'CzasKlienta';

var varValue = now.getHours () + ":" + now.getMinutes ();

window.location.href = "https://sa/test2.php?" + nazwa_zmiennej + "=" + wartość_zmiennej;

zwróć fałsz;

}

Wyślij dane do serwera W tym połączonym skrypcie (PHP + JavaScript), kod php wygeneruje kod JavaScript poprzez "przekazanie" zmiennej o nazwie "serverTime" z wartością zawierającą aktualny czas serwera. Gdy strona zostanie załadowana do przeglądarki, skrypt JavaScript wyświetli komunikat o tym czasie. Następnie użytkownik kliknie w link „Wyślij dane do serwera” uruchomi funkcję sendData(), która wyśle żądanie GET do serwera, przekazując nazwę zmiennej („clientTime”) i jej wartość (czas klienta) do php. scenariusz. Skrypt php, po odczytaniu nazwy i wartości zmiennej z tablicy superglobalnej $_GET, wypisze ją i ponownie uruchomi cały opisany skrypt.

Wymiana zmiennych i ich wartości pomiędzy PHP a JavaScript
Wymiana zmiennych i ich wartości pomiędzy PHP a JavaScript

Krok 3

Wszystko opisane powyżej realizuje scenariusz „synchronicznego” przesyłania danych. Implementacja „asynchronicznej” metody wymiany danych pomiędzy skryptami klienta i serwera ma swoją nazwę AJAX (Asynchronous Javascript i XML). Ten temat zasługuje na osobny artykuł.

Zalecana: