Ako Odovzdať Premennú

Obsah:

Ako Odovzdať Premennú
Ako Odovzdať Premennú

Video: Ako Odovzdať Premennú

Video: Ako Odovzdať Premennú
Video: How to pass variables to cfinclude in ColdFusion | Pass a variable from current page to cfincude 2024, Apríl
Anonim

Na zabezpečenie interaktívnej komunikácie medzi návštevníkom a webovou stránkou (alebo skôr prehliadačom s webovým serverom) musí programátor poskytnúť scenáre výmeny údajov medzi nimi. Uvažujme o niekoľkých jednoduchých možnostiach organizácie prenosu premenných z klientskeho skriptu JavaScrip na skript servera PHP a naopak.

Prenos údajov z PHP do JavaScriptu a naopak
Prenos údajov z PHP do JavaScriptu a naopak

Je to nevyhnutné

Základné znalosti jazykov PHP, JavaScript a HTML

Inštrukcie

Krok 1

Vo fáze formovania stránky nie je ťažké preniesť premennú spolu s jej hodnotou z php skriptu do skriptu JavaScript. Samotný skript PHP generuje HTML kód požadovanej stránky vrátane skriptov, ktoré obsahuje. To znamená, že môže do kódu JavaScript zapisovať ľubovoľné premenné, ktoré by sa mali odovzdávať spolu s ich hodnotami. Napríklad tento skript php odovzdá klientskemu skriptu premennú s názvom „serverTime“obsahujúcu aktuálny čas servera vo formáte HOUR: MINUTE:

<? php

$ JSvarName = 'serverTime';

$ JSvarValue = dátum ('H: i');

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

print ''. $ JScode.'alert ("A na serveri teraz" + '. $ JSvarName.'); '

?>

Odovzdanie premennej a jej hodnoty z PHP do Javascript
Odovzdanie premennej a jej hodnoty z PHP do Javascript

Krok 2

Najjednoduchší spôsob prenosu mien a hodnôt premenných v opačnom smere (od skriptu JS v prehliadači klienta k skriptu PHP na webovom serveri) môže vyzerať v HTML kóde stránky takto:

var now = nový dátum ();

var varName = 'clientTime';

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

window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;

Tento skript pošle skriptu test2.php názov premennej „clientTime“a jej hodnotu obsahujúcu aktuálny počítačový čas v rovnakom formáte HOUR: MINUTE. Tento spôsob prenosu údajov sa nazýva „synchrónny“- bude mať za následok okamžité opätovné načítanie stránky. Presnejšie, namiesto aktuálnej stránky sa do prehliadača načíta výsledok skriptu test2.php. Kód tohto skriptu php môže vyzerať takto:

<? php

if ($ _ GET) echo 'Received variable'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];

?>

Môžete kombinovať všetky tri uvažované časti kódu na prenos premenných zo servera do prehliadača a späť do jedného php súboru, ako je tento:

<? php

if ($ _ GET) echo 'Received variable'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];

$ JSvarName = 'serverTime';

$ JSvarValue = dátum ('H: i');

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

print ''. $ JScode.'alert ("A na serveri teraz" + '. $ JSvarName.'); '

?>

funkcia sendData () {

var now = nový dátum ();

var varName = 'clientTime';

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

window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;

návrat nepravdivý;

}

Odosielanie údajov na server V tomto kombinovanom skripte (PHP + JavaScript) vygeneruje kód php kód JavaScriptu „odovzdaním“premennej s názvom „serverTime“s hodnotou obsahujúcou aktuálny čas servera. Po načítaní stránky do prehliadača skript jazyka JavaScript zobrazí správu s týmto časom. Potom používateľ klikne na odkaz „Odoslať údaje na server“, spustí sa funkcia sendData (), ktorá odošle požiadavku GET na server a odovzdá názov premennej („clientTime“) a jej hodnotu (čas klienta) php scenár. Skript php, ktorý načíta názov a hodnotu premennej z superglobálneho poľa $ _GET, ho vytlačí a znova spustí celý opísaný skript.

Výmena premenných a ich hodnôt medzi PHP a JavaScript
Výmena premenných a ich hodnôt medzi PHP a JavaScript

Krok 3

Všetko popísané vyššie implementuje scenár „synchrónneho“prenosu dát. Implementácia „asynchrónnej“metódy výmeny údajov medzi klientskými a serverovými skriptmi má svoj vlastný názov AJAX (asynchrónny Javascript a XML). Táto téma si zaslúži samostatný článok.

Odporúča: