Навигация
 
Главная
Для начинающих
Паскаль/Pascal
Bash

Визуальное программирование
• Visual Basic
• Delphi/Делфи
• C++/Си++/Си
• документация
• Компоненты

WEB программирование
• MySQL/мускул
• Web-дизайн
•• Шрифты
• PHP/Пхп
• Документация PHP
• JavaScript
•• библиотека jquery
•  Документация
Прочее

 
 
Поиск по сайту
 




 
 
О нас
  У нас Вы можете скачать исходники, скачать скрипты, найти исходники, исходники delphi, документация по JQeury, исходники си, учебник HTML  
 
Теги
  codeserfercom, nbspnbsp, Private, Visual, Возможность, Пример, Рассмотрим, Сегодня, Теперь, будет, данных, значение, который, может, можно, написать, например, очень, переменной, переменных, пользователя, помощью, программа, программирования, программы, просто, работы, разработки, решил, сделать, скрипт, строки, строку, также, только, функции, число, этого, языка, языков

Показать все теги
 
 
Счетчики
 
 
 
Реклама
   
 
Лучшие коды
   
   
 
Пример маленького сайта на ajax
 Категория: Web-программирование » JavaScript » jquery | автор: Codeserfer | 5 июня 2010 | Просмотров: 8267  



 
До этой статьи на сайте был приведен пример работы ajax, но я не считаю его исчерпывающим, поэтому давайте попытаемся написать маленький сайтик из пары страниц, переход между которыми осуществлялся бы при помощи ajax.

Для примера сделаем некоторое подобие сайта фотостудии. Главная страница будет содержать общую информацию о студии, страница "контакты" будет содержать способы связи со студией, страница "работы" будет содержать фотографии. Для первого раза хватит :)

Вот, как будет выглядеть код без аякса:
<?php
$go=$_GET['go']; //формируем имя короткой переменной из глобального массива
if ($go == "") { //если выбрана главная страница
   $content="Информация о нас"; //содержимое страницы
   $title="О нас"; //заголовок страницы
}
if ($go == "contacts") {  //если выбрана страница контактов
   $content="Связь с нами"; //содержимое страницы
   $title="Контакты";  //заголовок страницы
}
if ($go == "works") {  //если выбрана страница портфолио
   $content="Наши работы"; //содержимое страницы
   $title="Портфолио";  //заголовок страницы
}
echo <<<HTML
<html>
<head>
<title>Фотостудия - $title</title>
</head>
<body>
<a href="index.php">О нас</a>  <a href="index.php?go=contacts">Контакты</a>  <a href="index.php?go=works">Наши работы</a><br />
$content
</body>
</html>
HTML;
?>

Можете сохранить этот код и попробовать его. Все работает предельно просто. Через ссылку передаем значение переменной $go, а потом уже обрабатываем его и выводим соответственные заголовки и контент. Теперь попытаемся разбить содержимое страницы на несколько логических частей:
1) Заголовок - изменяется при переходе на новую страницу
2) Меню - везде неизменно
3) Содержимое - изменяется при переходе на новую страницу
В итоге можно сделать вывод, что менять то надо только заголовок и содержание. Сейчас я приведу пример, который демонстрирует, как можно изменять только содержание в зависимости от ссылки на ajax (с заголовком мы разберемся чуть позже). Для этого я буду использовать библиотеку jQuery. Ее скачать Вы можете где угодно. Она распространяется свободно (открытый исходный код) и бесплатно. Просто наберите в гугле "jQuery скачать". Я не буду выкладывать библиотеку, т. к. она постепенно обновляется.
<?php
$go=$_GET['go']; //формируем имя короткой переменной из глобального массива
if ($go == "") { //если выбрана главная страница
   $content="Информация о нас"; //содержимое страницы
   $title="О нас"; //заголовок страницы
}
if ($go == "contacts") {  //если выбрана страница контактов
   $content="Связь с нами"; //содержимое страницы
   $title="Контакты";  //заголовок страницы
}
if ($go == "works") {  //если выбрана страница портфолио
   $content="Наши работы"; //содержимое страницы
   $title="Портфолио";  //заголовок страницы
}
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') die ($content); //если запрос сделал по ajax
echo <<<HTML
<html>
<head>
<script language="javascript" src="jquery-1.2.6.pack.js"></script> <!--подключаем библиотеку-->
<script language="javascript">
$(document).ready(function(){ //если DOM готов к манипуляции
   $("a").click(function(){ // если ссылка нажата
      var id=$(this).attr('id'); //получаем id нажатой ссылки
      $.ajax({
         type: "GET", //метод отправки: GET или POST
         data: "go="+id, //данные, которые отправляем серверу
         cache: false, //функция кеширования
         url: "index.php", //скрипт, которому отправляется запрос.
         beforeSend: function(){
            //перед отправкой запроса что-то делаем, например:
            alert ("Отправляем запрос");
         },
         success: function(response){
           //при успешном ответе сервера что-то делаем, например:
           alert ("Ответ успешно получен");
           $("#content").html (response);
         }
      });
      return false;
   });
});
</script>
<title>Фотостудия - $title</title>
</head>
<body>
<a href="index.php" id="about">О нас</a>  <a href="index.php?go=contacts" id="contacts">Контакты</a>  <a href="index.php?go=works" id="works">Наши работы</a><br />
<div id="content">
$content
</div>
</body>
</html>
HTML;
?>

А теперь разберемся, что же изменилось. Сначала я ко всем ссылкам добавил id, чтобы однозначно идентифицировать их. Затем для контента выделил "контейнер" - div c id="content". В нем у нас будет храниться контент, в него же и с помощью ajax мы будем кидать контент. А теперь объясню значение строчки
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') die ($content); //если запрос сделал по ajax

Определить, запрашивают ли PHP страницу с помощью ajax, можно этим условием. Если запрос идет по ajax, то переменная $_SERVER['HTTP_X_REQUESTED_WITH'] будет равна 'XMLHttpRequest'. die () я использую потому что нет надобности исполнять остальную часть кода. Если кто не знает, функция die () выполняет то, что ей передается и после этого выполняется завершение интерпретации. Если передается строка, то она и выводится, как в этом примере. В принципе в PHP коде больше нет изменений. Теперь подключаем библиотеку и пишем собственно код javascript. Подробный разбор javascript кода я написал здесь.
 
 

Что-то не получается? Не понятна какая-то часть кода? Напишите комментарий об этом и мы обязательно Вам все объясним!
Обязательно напишите отзыв о программе / учебнике. Для выражения благодарностей есть кнопка:


Своё Спасибо, еще не выражали.
 
  Просьбы перезалить в комментариях принимаются
 
 (голосов: 4)
 
 
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
  Другие коды по теме:  
 
  • Еще один пример сайта на ajax
  • Разбираемся с ajax запросом
  • ajax на jquery
  • Плавное появление и исчезновение загруженного контента
  • Магические исчезновения
  •  
    Комментарии (1) Распечатать




     Написал: bf005
     13 августа 2010 17:46 | ICQ: --
     

    Группа: Посетители
    Регистрация: 1.08.2010
    Спасибо
     
     Публикаций: 0 | Комментариев: 2


    © 2008 - 2010. Копирование материалов запрещено!
    Мой аккаунт
     
    Логин
    Пароль
     
     
     
    Опрос
     
    Какой архиватор используете вы?

    WinRAR
    WinZip
    7-zip
    CabTools
    Сижу на linux, все в .rpm .deb
    Другой
     
     
    Друзья
     
    serial, crack, keygen
    cool-archive.ru
    ABC-IT.lv - истиному ИТишнику!
     
     
    Архив кодов
      Август 2011 (1)
    Июль 2011 (4)
    Июнь 2011 (3)
    Апрель 2011 (2)
    Февраль 2011 (5)
    Январь 2011 (3)
     
     
     
    Реклама
    портрет медведева