Как да предавам променлива

Съдържание:

Как да предавам променлива
Как да предавам променлива

Видео: Как да предавам променлива

Видео: Как да предавам променлива
Видео: Экипаж (драма, фильм-катастрофа, реж. Александр Митта, 1979 г.) 2024, Септември
Anonim

За да организира интерактивна комуникация между посетител и уебсайт (или по-скоро браузър с уеб сървър), програмистът трябва да предостави сценарии за обмен на данни между тях. Нека разгледаме няколко прости опции за организиране на трансфера на променливи от клиентския скрипт JavaScrip към PHP скрипта на сървъра и обратно.

Предаване на данни от PHP към JavaScript и обратно
Предаване на данни от PHP към JavaScript и обратно

Необходимо е

Основни познания по PHP, JavaScript и HTML езици

Инструкции

Етап 1

На етапа на формиране на страницата не е трудно да се прехвърли променлива заедно със стойността й от php скрипт към JavaScript скрипт. Самият PHP скрипт генерира HTML кода на заявената страница, включително скриптовете, които съдържа. Това означава, че той може да напише всякакви променливи в кода на JavaScript, които трябва да бъдат предадени заедно с техните стойности. Например, този php скрипт ще предаде на клиентския скрипт променлива с име "serverTime", съдържаща текущото време на сървъра във формат HOUR: MINUTE:

<? php

$ JSvarName = 'serverTime';

$ JSvarValue = дата ('H: i');

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

print ''. $ JScode.'alert ("И на сървъра сега" + '. $ JSvarName.'); '

?>

Предаване на променлива и нейната стойност от PHP към Javascript
Предаване на променлива и нейната стойност от PHP към Javascript

Стъпка 2

Най-простият начин за предаване на имената и стойностите на променливите в обратна посока (от JS скрипта в браузъра на клиента до PHP скрипта на уеб сървъра) може да изглежда така в HTML кода на страницата:

var сега = нова дата ();

var varName = 'clientTime';

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

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

Този скрипт ще изпрати на скрипта test2.php името на променливата "clientTime" и нейната стойност, съдържаща текущото компютърно време в същия формат HOUR: MINUTE. Този метод за прехвърляне на данни се нарича „синхронен“- ще доведе до незабавно презареждане на страницата. По-точно, вместо текущата страница, резултатът от скрипта test2.php ще бъде зареден в браузъра. Кодът за този php скрипт може да изглежда така:

<? php

if ($ _ GET) echo 'Получена променлива'.key ($ _ GET). '='. $ _ GET [ключ ($ _ GET)];

?>

Можете да комбинирате и трите разглеждани части на кода за предаване на променливи от сървъра към браузъра и обратно в един php файл по следния начин:

<? php

if ($ _ GET) echo 'Получена променлива'.key ($ _ GET). '='. $ _ GET [ключ ($ _ GET)];

$ JSvarName = 'serverTime';

$ JSvarValue = дата ('H: i');

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

print ''. $ JScode.'alert ("И на сървъра сега" + '. $ JSvarName.'); '

?>

функция sendData () {

var сега = нова дата ();

var varName = 'clientTime';

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

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

върнете false;

}

Изпращане на данни към сървър В този комбиниран (PHP + JavaScript) скрипт php кодът ще генерира JavaScript код, като "предаде" променлива с име "serverTime" със стойност, съдържаща текущото време на сървъра. Когато страницата се зареди в браузъра, JavaScript скриптът ще покаже съобщение с това време. След това потребителят щраква върху връзката „Изпращане на данни на сървъра“ще стартира функцията sendData (), която ще изпрати GET заявка до сървъра, предавайки името на променливата („clientTime“) и нейната стойност (клиентско време) на php скрипт. PHP скрипт, след като прочете името и стойността на променлива от $ _GET суперглобалния масив, ще го отпечата и ще стартира целия описан скрипт отново.

Обмен на променливи и техните стойности между PHP и JavaScript
Обмен на променливи и техните стойности между PHP и JavaScript

Стъпка 3

Всичко описано по-горе изпълнява сценария на „синхронен“трансфер на данни. Внедряването на "асинхронен" метод за обмен на данни между клиентски и сървърни скриптове има собствено име AJAX (Asynchronous Javascript and XML). Тази тема заслужава отделна статия.

Препоръчано: