Кантип өзгөрүлмө өткөрүп берүү керек

Мазмуну:

Кантип өзгөрүлмө өткөрүп берүү керек
Кантип өзгөрүлмө өткөрүп берүү керек

Video: Кантип өзгөрүлмө өткөрүп берүү керек

Video: Кантип өзгөрүлмө өткөрүп берүү керек
Video: Агрогороскоп 2021 -жылдын октябрь айында кыюуларды кесүү жана тамырлоо плюс 2021 -жылдын күзүндө там 2024, Май
Anonim

Визит менен веб-сайттын (тагыраак айтканда, веб-сервери бар браузердин) ортосундагы интерактивдүү байланышты уюштуруу үчүн, программист алардын ортосунда маалымат алмашуу сценарийлерин сунушташы керек. Кардар JavaScript сценарийинен 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 now = new date ();

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 'Received variable'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];

?>

Серверден браузерге өзгөрмөлөрдү өткөрүп, бир PHP файлына кайтып келүү үчүн коддун каралып жаткан үч бөлүгүн тең бириктире аласыз:

<? php

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

$ JSvarName = 'serverTime';

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

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

print ''. $ JScode.'alert ("Азыр серверде" + '. $ JSvarName.'); '

?>

sendData () функциясы {

var now = new date ();

var varName = 'clientTime';

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

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

return false;

}

Маалыматты серверге жөнөтүү Бул айкалыштырылган (PHP + JavaScript) скриптинде, php коду JavaScript кодун иштеп чыгат жана "serverTime" аталышындагы өзгөрмөнү учурдагы сервер убактысын камтыйт. Барак браузерге жүктөлгөндө, JavaScript скрипти ушул убакыт менен билдирүү көрсөтөт. Андан кийин колдонуучу "Маалыматтарды серверге жөнөтүү" шилтемесин басканда sendData () функциясы иштей баштайт, ал серверге GET сурам жөнөтүп, өзгөрмө аталышын ("clientTime") жана анын маанисин (кардар убактысын) phpге өткөрүп берет. скрипт. PHP сценарийи, $ _GET superglobal массивинен өзгөрмөнүн атын жана маанисин окуп чыгып, аны басып чыгарып, сүрөттөлгөн сценарийди кайрадан баштайт.

PHP жана JavaScript ортосунда өзгөрүлмө жана алардын маанилери менен алмашуу
PHP жана JavaScript ортосунда өзгөрүлмө жана алардын маанилери менен алмашуу

3-кадам

Жогоруда баяндалгандардын бардыгы "синхрондуу" маалыматтарды берүүнүн сценарийин ишке ашырат. Клиенттик жана сервердик скрипттердин ортосунда маалыматтарды алмашуу "асинхрондук" ыкмасын ишке ашыруу өзүнүн AJAX аталышына ээ (Asynchronous Javascript жана XML). Бул тема өзүнчө макалага татыктуу.

Сунушталууда: