Конкурс:Дизайн Рабочего Кабинета
Случайные изображения
|
Php И Javascript
|
|
|
|
14.11.2011, 10:11
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
PHP и JavaScript
Сценарный язык JavaScript обладает чрезвычайно богатыми возможностями для разработки Интернет-приложений, работающих как на клиентской, так и на серверной стороне. У этого языка есть немало интересных особенностей, и одна из них -- возможность обработки не только данных, но и событий. Событие определяется как некоторое действие, выполненное в контексте браузера, -- например, щелчок мышью или загрузка страницы.
Любой программист с опытом работы на PHP, Pascal или C++ освоит JavaScript без особого труда. Если вы не программировали на этих языках, не огорчайтесь -- JavaScript изучается легко. Разработчики JavaScript (как, впрочем, и разработчики PHP) в первую очередь ориентировались на решение реальных, практических задач.
Если вы хотите воспользоваться средствами обработки,событий JavaScript, сохранив при этом многочисленные преимущества PHP, могу вас обрадовать -- PHP интегрируется с JavaScript так же легко, как и с HTML. В сущности, JavaScript неплохо дополняет PHP -- на нем удобно делать то, что неудобно делать в PHP, и наоборот.
Но прежде чем интегрировать PHP с JavaScript, следует учесть, что некоторые пользователи отключают поддержку JavaScript в своих браузерах или работают в браузерах, вообще не поддерживающих JavaScript (представьте, такое тоже бывает!). В PHP предусмотрены простые средства для распознавания таких ситуаций.
|
|
|
|
|
|
Ответов
(1 - 9)
|
14.11.2011, 10:15
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
Проверка поддержки JavaScriptПравильное определение возможностей браузера избавит пользователей от неприятностей при посещении вашего сайта. Ничто так не действует на нервы, как град раздражающих сообщений «JavaScript Error» или недоступность каких-то средств сайта из-за того, что использованные вами технологии не поддерживаются браузером. К счастью, в PHP предусмотрено простое средство для проверки возможностей браузера -- стандартная функция get_browser( ). get_browser( )Функция get_browser( ) возвращает информацию о возможностях браузера в виде объекта. Синтаксис: object get_browser([string агент]) Необязательный параметр агент используется для получения характеристик конкретного браузера. Как правило, функция get_browser( ) вызывается без параметров, поскольку по умолчанию она использует глобальную переменную PHP $HTTP_USER_AGENT. Стандартный список возможностей браузера хранится в файле browcap, путь к которому определяется параметром browcap в файле php.ini. По умолчанию эта строка выглядит следующим образом: ;browcap = extra/browcap.ini Файл browser.ini был разработан компанией cyScape, Inc. Последняя версия этого файла находится по адресу http://www.cyscape.com/browcap . Загрузите и распакуйте этот файл в каталог на сервере. Запомните имя каталога, оно понадобится вам для обновления параметра browcap в файле php.ini. В принципе, после загрузки browcap.ini и редактирования файла php.ini вы можете включать в свои программы проверку возможностей браузера. Впрочем, я рекомендую сначала открыть файл browser.ini и ознакомиться с его структурой, а затем просмотреть листинги 1.1 и 1.2. В листинге 1.1 приведен очень простой пример отображения всех возможностей браузера в самом браузере. Листинг 1.2 ограничивается лишь одной возможностью -- поддержкой JavaScript.
|
|
|
|
|
14.11.2011, 10:16
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
Листинг 1.1. Отображение всех атрибутов браузераКод <? // Получить информацию о браузере $browser = get_browser(); // Преобразовать $browser в массив Sbrowser = (array) Sbrowser; while (list ($key, $value) = each ($browser)) : // Присвоить нули пустым элементам массива if ($value == "") : $value = 0; endif; print "$key : $value <br>"; endwhile; ?> Для браузера Microsoft Internet Explorer 5.0 листинг 15.1 выводит следующий результат: browser_name_pattern : Mozilla/4\.0 (compatible; MSIE 5\..*) parent IE 5.0 browser : 5.0 version : 15 majorver : #5 minorver : #5 frames : 1 tables : 1 cookies : 1 backgroundsounds : 1 vbscript : 1 javascript : 1 javaapplets : 1 activexcontrols : 1 win16 : 0 beta : 0 ak : 0 sk : 0 aol : 0 crawler : 0 cdf : 1
|
|
|
|
|
14.11.2011, 10:17
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
В листинге 1.2 приведен простой, но эффективный сценарий, который при помощи файла browcap.ini определяет, включена ли поддержка JavaScript в браузере. Листинг 1.2. Проверка поддержки JavaScriptКод <? $browser = get_browser( ); // Преобразовать $browser в массив $browser = (array) $browser; if ($browser["javascript"] == 1) : print "Javascript enabled!"; else : print "No javascript allowed!"; endif; ?> Листинг 1.2 проверяет, присутствует ли ключ javascript для заданного браузера. Если ключ присутствует и равен 1, в браузере выводится сообщение о поддержке JavaScript. В противном случае выводится сообщение об ошибке. Конечно, в реальной программе вместо выдачи сообщения следует выполнить какие-нибудь полезные действия.
|
|
|
|
|
14.11.2011, 10:18
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
Следующие два примера показывают, как легко PHP,интегрируется с JavaScript. Листинг 1.3 определяет параметры экрана (разрешение и цветовую глубину) средствами JavaScript и затем выводит их средствами PHP. Листинг 1.4 (см. следующий раздел) показывает, как при помощи шаблона PHP во временном (pop-up) окне, вызванном из кода JavaScript, выводится информация о ссылке, на которой щелкнул пользователь. Листинг 1.3. Определение цветовой глубины и разрешения экранаКод <html> <head> <title>Browser Information</title> </head> <body> <script language="Javascriptl.2"> <!--// document.write('<form method=POST action ="<? echo $PHP_SELF; ?>">'); document.write('<input type=hidden name=version value=' + navigator.appVersion + '>'); document.write('<input type=hidden name=type value=' + navigator.appName + '>'); document.write('<input type=hidden name-screenWidth value=' + screen.width +'>'); document.write('<input type=hidden name=screenHeight value=' + screen.height + '>'}; document.write('<input type=hidden name=browserHeight value=' + window.innerWidth + '>'); document.write('<input type=hidden name=browserWidth value=' + window.innerHeight + '>'); //--> </script> <input type="submit" value="Get browser information"><p> </form> <? echo "<b>Browser:</b> $type Version: $version<br>"; echo "<b>Screen Resolution:</b> $screenWidth x $screenHeight pixels.<br>"; if ($browserWidth != 0) : echo "<b>Browser resolution:</b> $browserWidth x $browserHeight pixels."; else : echo "No javascript browser resolution support for Internet Explorer"; endif; ?> </body> </html>
|
|
|
|
|
14.11.2011, 10:20
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
Динамическое создание временных оконВ JavaScript предусмотрены простые и удобные средства для работы с окнами браузера. В частности, JavaScript позволяет отображать временные окна с вспомогательной информацией, не оправдывающей создания и загрузки отдельной страницы. Напрашивается очевидная идея -- построить универсальный шаблон, который будет использоваться для всех временных окон. Все, что для этого потребуется, -- PHP. В листинге 1.4 показано, как файл PHP window.php вызывается из JavaScript. В этом файле реализован очень простой шаблон с директивой INCLUDE для включения файла, идентификатор которого передается window.php при вызове из JavaScript. Для читателей, не имеющих опыта программирования на JavaScript, я включил в программу подробные комментарии. Значение переменной winld, передаваемой сценарию PHP window.php, задается внутри ссылки в основном коде HTML. Когда пользователь щелкает на ссылке, вызывается функция newWindow( ), определенная в JavaScript. Чтобы вы лучше поняли, как это происходит, рассмотрим следующую ссылку: <а href="#" onClick="newWindow(1):">Contact us</a><br> Как видите, я просто включаю в href значение "#", поскольку ссылка генерируется обработчиком события onClick в JavaScript. Установка обработчика приводит к тому, что при щелчке на ссылке вызывается функция newWindow( ). Обратите внимание на параметр, передаваемый при вызове этой функции (в приведенном примере -- 1). Содержащийся в нем идентификатор используется сценарием PHP для выбора отображаемой информации. Вы можете передать любое число -- при условии, что оно соответствует имени файла, отображаемого в сценарии PHP. Внимательно просмотрите листинг 1.4. Чтобы вам было легче ориентироваться, я создал три простых файла *.inc, соответствующих ссылкам в этом листинге. Листинг 1.4. Динамическое построение временных окон Код <html> <head> <title>Listing 15-4</title> <script language="Javascript"> // Объявить переменную Javascript var popWindow; // Объявить функцию newWindow function newWindow(winID) { // Объявить переменную winURL. Присвоить ей // имя файла PHP с последующими данными. var winURL = "Listingl5-5.php?winID=" + winID; // Если временное окно не существует или закрыто. // открыть его. if (! popWindow | popWindow.closed) { // Открыть новое окно шириной 200 пикселов и высотой // 300 пикселов, расположенное на расстоянии 150 пикселов // от левого края и 100 пикселов от верхнего края // основного окна. popWindow = window.open(winURL. 'popWindow', dependent.width=200.height=300.left=150 ,top=100'); } // Если временное окно уже открыто. // активизировать его и обновить содержимое // в соответствии с winURL. else { popWindow.focus(); popWindow.location = winURL; } } //--> </SCRIPT> </head> <body bgcolor="#ffffff" text="#000000" link="#808040"'vlink="#808040" alink="#808040"> <a href="#" onClick="newWindow(1);">Contact Us</a><br> <a href="#" onClick="newWindow(2):">Driving Directions</a><br> <a href="#" onClick="newWindow(3);">Weather Report</a><br> </body> </html>
|
|
|
|
|
14.11.2011, 10:23
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
Когда пользователь щелкает на одной из ссылок в листинге 1.4, программа создает временное окно и загружает в него содержимое, полученное в результате вызова window.php. Сценарию window.php передается переменная winID, по которой определяется файл, включаемый в сценарий PHP. Сценарий window.php приведен в листинге 1.5. Листинг 1.5. Сценарий window.php Код <html> <head> <title>Popup Window Fun</title> </head> <body bgcolor="#ffffff" text="#000000" link="black" vlink="gray" alink="#808040"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <? // Включить файл, имя которого определяется // переданным параметром. INCLUDE("$winID.inc"); ?> </td> </tr> <tr> <td> <a href="#" onClick="parent.self.closet); ">close window</a> </td> </tr> </table> </body> </html>
|
|
|
|
|
14.11.2011, 10:25
|
Опытный Пользователь
Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435
|
Остается лишь создать файлы для ссылок в листинге 1.4. Поскольку в ссылках передаются три уникальных идентификатора (1, 2 и 3), мы должны создать три файла. Первый файл, содержащий контактную информацию, сохраняется с именем Line: Код <td> <h4>Contact Us</h4> <table> <tr> <li>email: <a href="mailto:wj@wjgilmore.com">wj@wjgilmore.com</a> <li>phone: (555) 867 5309 <li>mobile: (555) 555 5555 </ul> </td> </tr> </table> Следующий файл (местонахождение) сохраняется с именем 2.inс. Код <table> <tr> <td> <h4>Driving Directions</h4> <ol> <li>Turn left on 1st avenue. <li>Enter the old Grant building. <li>Take elevator to 4th floor. <li>We're in room 444. </td> </tr> </table> Последний файл (сводка погоды) сохраняется с именем 3.inc. Обратите внимание на вызов функции PHP, возвращающей текущую дату, -- этот пример наглядно показывает, как легко PHP интегрируется с java script: , Код <table> <tr> <td> <h4>Weather Report <?=date("m-d-Y");?></h4> <b>Today:</b> Birr... Brisk, with blowing and drifting snow.<br><br> <b>Tonight:</b> Winter Weather Advisory. 7-10 inches snow expected. </td> </tr> </table>
|
|
|
|
|
1.9.2013, 0:20
|
Новичок
Группа: Икринка
Сообщений: 1
Регистрация: 1.9.2013
Пользователь №: 24955
|
Подскажите на каком языке написан этот сайт? http://racionika.ru/how_thin
|
|
|
|
|
|
|
|