За да организира интерактивна комуникация между посетител и уебсайт (или по-скоро браузър с уеб сървър), програмистът трябва да предостави сценарии за обмен на данни между тях. Нека разгледаме няколко прости опции за организиране на трансфера на променливи от клиентския скрипт JavaScrip към PHP скрипта на сървъра и обратно.
Необходимо е
Основни познания по 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.'); '
?>
Стъпка 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 суперглобалния масив, ще го отпечата и ще стартира целия описан скрипт отново.
Стъпка 3
Всичко описано по-горе изпълнява сценария на „синхронен“трансфер на данни. Внедряването на "асинхронен" метод за обмен на данни между клиентски и сървърни скриптове има собствено име AJAX (Asynchronous Javascript and XML). Тази тема заслужава отделна статия.