Այցելուի և կայքի (ավելի ճիշտ ՝ զննարկիչ ՝ վեբ սերվերի հետ) ինտերակտիվ հաղորդակցություն կազմակերպելու համար ծրագրավորողը պետք է սցենարներ տրամադրի նրանց միջև տվյալների փոխանակման համար: Եկեք քննարկենք հաճախորդի JavaScript գրությունից սերվերի PHP գրությունը և հակառակը փոփոխականների տեղափոխման կազմակերպման մի քանի պարզ տարբերակ:

Դա անհրաժեշտ է
PHP, JavaScript և HTML լեզուների հիմնական գիտելիքներ
Հրահանգներ
Քայլ 1
Էջի ձևավորման փուլում դժվար չէ փոխել փոփոխականն իր արժեքի հետ php գրությունից JavaScript գրության վրա: PHP գրությունն ինքնին առաջացնում է հայցվող էջի HTML կոդ, ներառյալ դրա մեջ պարունակվող սցենարները: Սա նշանակում է, որ նա կարող է JavaScript կոդի մեջ գրել ցանկացած փոփոխական, որը պետք է փոխանցվի դրանց արժեքների հետ միասին: Օրինակ, այս php սցենարը հաճախորդի գրությանը կփոխանցի «serverTime» անունով փոփոխական, որը պարունակում է սերվերի ընթացիկ ժամանակը HOUR: MINUTE:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = ամսաթիվ ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue." "; ';
տպել ''. $ JScode.'alert ("Եվ հիմա սերվերում" + '. $ JSvarName.'); '
?>

Քայլ 2
Փոփոխականների անուններն ու արժեքները հակառակ ուղղությամբ փոխանցելու ամենապարզ ձևը (հաճախորդի զննարկչում JS գրությունից մինչև վեբ սերվերի վրա գտնվող PHP գրություն) կարող է նման լինել էջի HTML կոդում.
var հիմա = նոր ամսաթիվ ();
var varName = 'հաճախորդի ժամանակ';
var varValue = now.getHours () + ":" + now.getMinutes ();
windows.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 [ստեղն ($ _ GET)];
?>
Կոդի բոլոր երեք դիտարկված մասերը կարող եք համատեղել սերվերից զննարկիչին փոփոխականներ փոխանցելու և հետևյալ մեկ PHP ֆայլի մեջ.
<? php
if ($ _ GET) echo 'Received variable'.key ($ _ GET). '='. $ _ GET [ստեղն ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = ամսաթիվ ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue." "; ';
տպել ''. $ JScode.'alert ("Եվ հիմա սերվերում" + '. $ JSvarName.'); '
?>
գործառույթ sendData () {
var հիմա = նոր ամսաթիվ ();
var varName = 'հաճախորդի ժամանակ';
var varValue = now.getHours () + ":" + now.getMinutes ();
windows.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
վերադարձ կեղծ;
}
Տվյալներ ուղարկել սերվերին Այս համակցված (PHP + JavaScript) սցենարում php կոդը կստեղծի JavaScript կոդ ՝ «սերվերի ժամանակ» անունով փոփոխականին «փոխանցելով» ՝ սերվերի ընթացիկ ժամանակը պարունակող արժեքով: Երբ էջը բեռնվում է զննարկչի մեջ, JavaScript գրությունը այս անգամ հաղորդագրություն կցուցադրի: Այնուհետև օգտագործողը կտտացնում է «Տվյալներ ուղարկել սերվերին» հղմանը ՝ գործարկվելու է sendData () գործառույթը, որը սերվերին GET հարցում կուղարկի ՝ փոխանցելով փոփոխականի անունը («հաճախորդի ժամ») և դրա արժեքը (հաճախորդի ժամանակը) php- ին: սցենար PHP սցենարը, կարդալով $ _GET սուպերգլանային զանգվածից փոփոխականի անունը և արժեքը, կտպագրի այն և նորից կսկսի նկարագրված ամբողջ սցենարը:

Քայլ 3
Վերը նկարագրված ամեն ինչ իրականացնում է տվյալների «սինքրոն» փոխանցման սցենարը: Հաճախորդի և սերվերի սցենարների միջև տվյալների փոխանակման «ասինքրոն» մեթոդի իրագործումն ունի իր սեփական անունը ՝ AJAX (Asynchronous Javascript և XML): Այս թեման արժանի է առանձին հոդվածի: