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.
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.');'
?>
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.
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ł.