Келуші мен веб-сайттың (дәлірек айтсақ, веб-сервері бар браузер) арасындағы интерактивті байланысты ұйымдастыру үшін бағдарламалаушыға олардың арасында мәліметтер алмасудың сценарийлері ұсынылуы керек. Айнымалыларды клиенттің JavaScript сценарийінен серверге 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 now = жаңа күн ();
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
егер ($ _ GET) echo 'Алынған айнымалы'.key ($ _ GET). '='. $ _ GET [кілт ($ _ GET)];
?>
Айнымалыларды серверден браузерге жіберуге арналған кодтың барлық қарастырылған үш бөлігін және келесідей бір PHP файлына біріктіруге болады:
<? php
егер ($ _ GET) echo 'Алынған айнымалы'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = күн ('H: i');
$ JScode = $ JSvarName. '= «'. $ JSvarValue. '»;';
print ''. $ JScode.'alert («Ал қазір серверде» + '. $ JSvarName.'); '
?>
sendData () функциясы {
var now = жаңа күн ();
var varName = 'clientTime';
var varValue = now.getHours () + «:» + now.getMinutes ();
window.location.href = «https://sa/test2.php?» + varName + «=» + varValue;
жалған қайтару;
}
Деректерді серверге жіберу Осы біріктірілген (PHP + JavaScript) сценарийде php коды JavaScript кодын «serverTime» деп аталатын айнымалыны ағымдағы сервер уақытын қамтитын «жіберу» арқылы жасайды. Парақ браузерге жүктелгенде, JavaScript сценарийінде осы уақытқа хабарлама шығады. Содан кейін пайдаланушы «Деректерді серверге жіберу» сілтемесін басқанда sendData () функциясы іске қосылады, ол серверге GET сұранысын жібереді, айнымалы атауын («clientTime») және оның мәнін (клиент уақыты) php-ге жібереді. сценарий. PHP сценарийі айнымалының аты мен мәнін $ _GET суперглобал массивінен оқып, оны басып шығарады және бүкіл сипатталған сценарийді қайта бастайды.
3-қадам
Жоғарыда сипатталғандардың барлығы деректерді берудің «синхронды» сценарийін жүзеге асырады. Клиенттік және серверлік сценарийлер арасында мәліметтер алмасудың «асинхронды» әдісін жүзеге асырудың өзіндік AJAX атауы бар (Asynchronous Javascript және XML). Бұл тақырып бөлек мақалаға лайық.