ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
18 февраля 2019 5:40
Вход Регистрация Забыли пароль ?

megainformatic - Game craft - игровая камера в d3d9 - приложении
Game craft - игровая камера в d3d9 - приложении [все уроки game craft]  [моделируем scv]  [моделируем scv шаг 1 часть 2] [моделируем scv шаг 2 часть 3] [Прорисовка текстуры робота SCV шаг 5]  [экспорт робота scv в формат x] 
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Уроки Photoshop

megainformatic - Купить Уроки Photoshop - Чудеса

megainformatic - Купить Уроки Photoshop - Рисуем и Анимируем

megainformatic - Эмулятор игры Ну, Погоди!

сайт megainformatic - Говорящий Комикс Веселый Буквоежка

megainformatic - Что нужно для создания собственного сайта ?

megainformatic - Моделируем девушку в 3d используя 3ds max

megainformatic - Уроки Fruity Loops Studio - пишем свою музыку

megainformatic - Уроки Fruity Loops Studio - пишем свою музыку - урок 1 - Быстрый старт

megainformatic - Сброник статей по дизайну и компьютерной графике. Обзор.

megainformatic - Уроки 3d на delphi directx - Вывод Заставки

Добро пожаловать в систему управления сайтом megainformatic cms

megainformatic - Создание эскиза и макета страницы сайта

megainformatic - Верстка созданного макета

megainformatic - Добавление модулей обеспечивающих минимально необходимый функционал

megainformatic - Основы добавления контента на сайт, управления и поддержки сайта

megainformatic - Проверка работы сайта, установка на хостинг

megainformatic - Основы продвижения созданного сайта

megainformatic - Создание шаблонов

megainformatic - Создание интернет-магазина

megainformatic - Музыкальные миры - композиция Морозное утро - 10 версий

ЛЕТО

megainformatic - Нечто Необъяснимое - пре релиз

megainformatic cms admin

megainformatic cms admin

megainformatic - Основы создания 3d игр - проект Тайны Морских Глубин

megainformatic - уроки delphi directx 8.1 3d - Основы Вращений и Управления камерой

megainformatic cms seo

megainformatic cms admin

megainformatic - Моделируем девушку в 3d - Подготовка 2d-эскиза тела человека

megainformatic cms stat kit

megainformatic cms seo

megainformatic - Теория и практика 3d игр - О Кватернионах

megainformatic - Теория и практика 3d игр - Основы теории векторов

megainformatic - Теория и практика 3d игр - Важные замечания

megainformatic - Моделируем девушку в 3d используя 3ds max - Подготовка к моделированию ноги - готовим ширму

megainformatic - Моделируем девушку в 3d используя 3ds max - Выполняем моделирование ноги

megainformatic - Моделируем девушку в 3d используя 3ds max - Улучшаем созданную модель женской ножки

megainformatic cms stat kit

megainformatic - Подводная лодка и подводный мир

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

megainformatic cms social

megainformatic cms social Руководство пользователя

megainformatic - megainformatic cms - Форма для смены шаблонов сайта - модуль template selector

модуль слайдера

ТЗ на сайт коллективных покупок

модуль slider

megainformatic cms seo

Поддержка сайтом нескольких языков - модуль multi lang

Поддержка сайтом нескольких языков - модуль multi lang

megainformatic - Моделируем девушку в 3d используя 3ds max - другие статьи сборника статей - обзор

установка нового шаблона в joomla 2.5.4

Описание продукта megainformatic cms social

Описание продукта megainformatic cms social

megainformatic - ТЗ на сайт по аналогии rys-stroi.ru

megainformatic cms groupon

подробнее

Калькулятор рассчёта стоимости услуг зубопротезирования для стоматологической клиники



Демонстрационный сайт - http://varve.ru/webprojects/ekstm/calc/

Калькулятор рассчёта стоимости услуг зубопротезирования для стоматологической клиники

Реализованы технологии на php + javascript.

Особенности:

- Позволяет наглядно выбирать отдельные элементы и/или группы элементов;

- Выбранные параметры влияют на стоимостные характеристики, которые можно задавать в файле настроек произвольно;

- Работает независимо от основного сайта, легко может быть интегрирован в основной сайт в виде подпапки не затрагивая никакие его функции и не требуя никаких изменений;

- Имеет набор ссылок, которые можно произвольно задавать, чтобы они вели на соответствующие страницы;

- Пошаговый процесс калькуляции, с проверкой корректности введенных данных;

- Дополнительные опции - прикрепление файлов, запись на приём, учёт оставленных заявок в системе, возможность отслеживания и др.;

- Ссылки для публикации в соц. сетях;

Стоимость приобретения/разработки: договорная. (обращайтесь в КОНТАКТЫ)

Если Вас заинтересовал данный продукт, либо Вы хотели бы создать нечто похожее или калькулятор какого-то иного типа - обращайтесь в раздел КОНТАКТЫ

подробнее

     
 

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] Другие уроки на тему создания игр  
     
  рассматриваем 
      код функции wWinMain в примере CreateDevice из DX SDK Aug 2008

Самый первый шаг - что нужно для программирования игр на C++ DirectX 9c, рассматриваем код функции wWinMain в примере CreateDevice из DX SDK Aug 2008
 
     
  Самый первый шаг - страница 2 - рассматриваем код функций MsgProc, InitD3D, Cleanup, Render  
     
  Самый первый шаг - страница 3 - выполняем настройку игрового проекта для подключения заголовочных и библиотечных файлов, наблюдаем запуск приложения CreateDevice  
     
  Изучаем и модифицируем пример CreateDevice - ответы на типичные вопросы: что такое переменная и тип переменной, как осуществлять поиск ответов на вопросы в справочной системе  
     
  Изучаем 
      и модифицируем пример CreateDevice страница 2 - изменение размеров, заголовка окна, запрет кнопки максимизации окна, выбор 
      цвета для заполнения рабочей области

Изучаем и модифицируем пример CreateDevice страница 2 - изменение размеров, заголовка окна, запрет кнопки максимизации окна, выбор цвета для заполнения рабочей области
 
     
  Изучаем 
      и модифицируем пример CreateDevice страница 3 - - описывается как создать иконку в Photoshop, а затем внедрить её в приложение 
      на примере CreateDevice.

Изучаем и модифицируем пример CreateDevice страница 3 - описывается как создать иконку в Photoshop, а затем внедрить её в приложение на примере CreateDevice.
 
     
  Рассматриваем 
      пример Vertices - как нарисовать модель треугольника, модель квадрата

Рассматриваем пример Vertices - как нарисовать модель треугольника, модель квадрата
 
     
  Пример Matrices - модель вращающегося треугольника  
     
  Введение в 2d-игры - создаем игру Веселый Буквоежка на реальном примере игры  
     
  Создаем 
      игровую оболочку как у Alawar или Nevosoft.

Создаем игровую оболочку как у Alawar или Nevosoft.
 
     
  Внедряем 
      простейшее d3d-приложение - это следующий шаг по построению собственного 
      игрового проекта, ясная и четкая основа, с которой будет начинаться любой 
      Ваш игровой проект.

Внедряем простейшее d3d-приложение - это следующий шаг по построению собственного игрового проекта, ясная и четкая основа, с которой будет начинаться любой Ваш игровой проект.
 
     
  Выводим заставку - рассматривается использование 
      2d-изображений и спрайтов в среде DirectX.

Выводим заставку - рассматривается использование 2d-изображений и спрайтов в среде DirectX.
 
     
  Создаем 
      игровое меню - показаны простейшие особенности создания и использования 
      экранного меню для игры.

Создаем игровое меню - показаны простейшие особенности создания и использования экранного меню для игры.
 
     
  Анимация и перемещение персонажа - как сделать анимированного персонажа для 2d-игры и заставить его ходить по сцене.  
     
  Создание игровых панелей и индикаторов - подробности того, как создаются в игре игровые панели, содержащие различные индикаторы: здоровья, счёта, энергии и других.  
     
  Игра Веселый Буквоежка - инструменты разработки. Редактор сцен - SceneEditor 1.01, Сборщик локаций, Утилита Coords2D

Игра Веселый Буквоежка - инструменты разработки.

- Редактор сцен - SceneEditor 1.01;

- Сборщик локаций;

- Утилита Coords2D;

Игра Веселый Буквоежка - рисуем паука. Также рассказано о том, как удобно тестировать анимацию при помощи утилиты Coords2D.

Игра Веселый Буквоежка - рисуем паука. Также рассказано о том, как удобно тестировать анимацию при помощи утилиты Coords2D.
 
     
  Разработка игр на движке fle game engine - это - загрузчик, настройки игры, вступление, предыстория, проигрывание музыки и звуков, прокрутка игровой сцены, вещи и находки, существа, окружение, игровые панели, столкновения, взятие/использование вещей/находок, атаки злых пауков, атаки героя, поиск находок в земле, складывание слов, бонусы.  
     
  Как создать игру ? Программируем сами

 
     
 

fle game engine включает:

- утилиту Coords2D.exe;

- редактора игровых сцен;

 
     
подробнее

Логика работы слайдера на javascript

В предыдущей статье - Пишем слайдер на javascript с нуля

я рассказал об основных моментах, которые включает алгоритм работы типичного слайдера.

Сейчас мы рассмотрим логику работы класса timedSlideShow

Как я уже упоминал в статье - Пишем слайдер на javascript с нуля

Логика описана в файле - timed.slideshow.js

Прокомментирую код, который Вы можете там увидеть.

Сразу замечу, что сохранить код всех необходимых файлов себе Вы можете просто сохранив данную страничку на свой компьютер из браузера.

// объявляем класс
var timedSlideShow = Class.create();

// описываем реализацию класса
timedSlideShow.prototype = {
// описываем реализацию функции initialize - инициализации
initialize: function(element, data) {

// текущая итерация
this.currentIter = 0;
// последняя итерация - будет нам служить для того, чтобы скрыть уже показанную картинку
this.lastIter = 0;
// максимально допустимая итерация - это индекс последней доступной картинки в массиве картинок нашего слайд-шоу
this.maxIter = 0;
// id контейнера всех html-элементов слайд-шоу - в нашем примере описаны в блоке div с id = mySlideshow
this.slideShowElement = element;
// массив данных, содержащих описания элементов слайд-шоу - в нашем примере этот массив находится в переменной mySlideData
this.slideShowData = data;
/* по-порядку: флаг показывающий, что инициализация уже сделана; контейнер для хранения массива элементов;
временная задержка в миллисекундах, определяющая скорость смены изображений в слайдере;
ссылка на статью; область показа информации об отображаемом изображении (подпись, описание)

*/
this.slideShowInit = 1;
this.slideElements = Array();
this.slideShowDelay = 4000;
this.articleLink = "";
this.slideInfoZone = "";

/* по-порядку: устанавливаем стиль отображения для блока слайд-шоу - блочный;
создаем элемент ссылка - вида <a href=""></a> для свойства ссылка ;
даем имя класса свойству ссылка - global
присоединяем этот элемент, как дочерний к объекту element
значение ссылки href пока выставляем в пустое значение - ""
*/
element.style.display="block";

this.articleLink = document.createElement('a');
this.articleLink.className = 'global';
element.appendChild(this.articleLink);
this.articleLink.href = "";
/* по-порядку: определяем длину блока данных;
выполняем цикл, перебирая все элементы начиная от i = 0 до последнего;
создаем div для переменной currentImg;
даем свойству className значение slideElement;
выставляем атрибуты отображения: позицию absolute, left и top отступы в 0, внешние отступы margin 0;
бордюр 0, фоновая картинка из массива data для данного элемента i из вложенного массива с индексом 0;
положение фоновой картинки - по горизонтали и вертикали - центр;
*/
this.maxIter = data.length;
for (i=0 ; i < data.length ; i++ )
{
var currentImg = document.createElement('div');
currentImg.className = "slideElement";
currentImg.style.position="absolute";
currentImg.style.left="0px";
currentImg.style.top="0px";
currentImg.style.margin="0px";
currentImg.style.border="0px";
currentImg.style.backgroundImage="url('" + data[i][0] + "')";
currentImg.style.backgroundPosition="center center";

/* по-порядку: вставляем созданный блок для currentImg в блок articleLink;
выставляем полупрозрачность, используя класс fx.Opacity из библиотеки mootools;
полупрозрачность в 0;
и вставляем блок изображения в массив slideElements с индексом i;
*/
this.articleLink.appendChild(currentImg);
currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
currentImg.setStyle('opacity',0);
this.slideElements[parseInt(i)] = currentImg;
}

/* по-порядку: создаем блок div для загружаемого элемента loadingElement;
даем классу стиля соответствующее имя;
добавляем созданный элемент как дочерний в объект articleLink;
для slideInfoZone - информационной области слайдера поступаем аналогично;
и еще выставляем полупрозрачность opacity в 0;

вызываем метод doSlideShow;
*/
this.loadingElement = document.createElement('div');
this.loadingElement.className = 'loadingElement';
this.articleLink.appendChild(this.loadingElement);

this.slideInfoZone = document.createElement('div');
this.slideInfoZone.className = 'slideInfoZone';
this.articleLink.appendChild(this.slideInfoZone);
this.slideInfoZone.style.opacity = 0;

this.doSlideShow();
},
/* по-порядку: метод вызываемый при уничтожении объекта класса слайд-шоу;
создаем переменную со значение имени класса-стиля (класс, который описывается в стилях css) для element;
создаем в переменной newElement блок div ;
даем ему полученное имя класса-стиля;
в родительском элементе заменяем старый элемент новым;
*/
destroySlideShow: function(element) {
var myClassName = element.className;
var newElement = document.createElement('div');
newElement.className = myClassName;
element.parentNode.replaceChild(newElement, element);
},
/* по-порядку: метод запуска слайд-шоу - ;
скрываем показ загружаемого элемента;
последний элемент получает значение максимального за вычетом единицы;
текущий - 0;
инициализация - не выполнена;
непрозрачность текущего элемента - 1;
создаем обработчик для вызова метода showInfoSlideShow при событии по таймеру и выставляем интервал в 1000 миллисекунд;
аналогичный обработчик для метода hideInfoSlideShow, но с другим интервалом - this.slideShowDelay-1000;
и для метода nextSlideShow - аналогично с указанным интервалом для this.slideShowDelay ;
*/
startSlideShow: function() {
this.loadingElement.style.display = "none";
this.lastIter = this.maxIter - 1;
this.currentIter = 0;
this.slideShowInit = 0;
this.slideElements[parseInt(this.currentIter)].setStyle('opacity', 1);
setTimeout(this.showInfoSlideShow.bind(this),1000);
setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-1000);
setTimeout(this.nextSlideShow.bind(this),this.slideShowDelay);
},
/* по-порядку: метод показа следующего изображения слайд-шоу ;
последняя итерация получает значение текущей ;
текущая увеличивается на 1 ;
если текущая больше или равна максимальной, то ;
текущая в 0 ;
последняя - в максимальную за минусом 1 ;
флаг инициализации в 0 ;
привязка вызова метода doSlideShow к обработчику this
*/
nextSlideShow: function() {
this.lastIter = this.currentIter;
this.currentIter++;
if (this.currentIter >= this.maxIter)
{
this.currentIter = 0;
this.lastIter = this.maxIter - 1;
}
this.slideShowInit = 0;
this.doSlideShow.bind(this)();
},
/* по-порядку: метод выполнения слайд-шоу;
инициализировано ли слайд-шоу ?;
да - создаем объект Image ;
если изображение уже однажды предзагружено - запускаем слайд-шоу;
источник для предзагруженного изображения берем из slideShowData[0][0];

нет - если текущая итерация != 0, то выставляем событие для изменения непрозрачности onComplete на созданную функцию, внутри которой непрозрачность выставляется в 0 для предыдущего элемента;
для текущего элемента непрозрачность выставляем в диапазон изменения от 0 до 1;
если текущая итерация == 0, то непрозрачность текущего в 1, ;
непрозрачность предыдущего должна меняться от 1 до 0;
выставляем вызовы методов showInfoSlideShow, hideInfoSlideShow, nextSlideShow по событиям от таймера при заданных интервалах;
*/
doSlideShow: function() {
if (this.slideShowInit == 1)
{
imgPreloader = new Image();
imgPreloader.onload=function(){
setTimeout(this.startSlideShow.bind(this),10);
}.bind(this);
imgPreloader.src = this.slideShowData[0][0];
} else {
if (this.currentIter != 0) {
this.slideElements[parseInt(this.currentIter)].currentOpacity.options.onComplete = function() {
this.slideElements[parseInt(this.lastIter)].setStyle('opacity',0);
}.bind(this);
this.slideElements[parseInt(this.currentIter)].currentOpacity.custom(0, 1);
} else {
this.slideElements[parseInt(this.currentIter)].setStyle('opacity',1);
this.slideElements[parseInt(this.lastIter)].currentOpacity.custom(1, 0);
}
setTimeout(this.showInfoSlideShow.bind(this),1000);
setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-1000);
setTimeout(this.nextSlideShow.bind(this),this.slideShowDelay);
}
},
/* по-порядку: метод показа инфо-области для слайд-шоу;
удаляем дочерний элемент;
создаем див;
создаем стиль для инфо-области на основе класса fx.Styles mootools;
непрозрачность в 0;
создаем блок h2;
вставляем в него подпись для текущего изображения слайдера в инфо-области;
и делаем полученный объект дочерним для инфо-области;
для описания создаем блок p;
и аналогично добавляем туда текст описания;
для объекта ссылки articleLink.href указываем корректную ссылку;
для инфо-области задаем имя класса стиля;
определяем нормальную высоту блока slideInfoZone;
задаем изменение непрозрачности и высоты в заданных пределах: непрозрачность от 0 до 0.7, высота от 0 до нормальной;
*/
showInfoSlideShow: function() {
this.articleLink.removeChild(this.slideInfoZone);
this.slideInfoZone = document.createElement('div');
this.slideInfoZone.styles = new fx.Styles(this.slideInfoZone);
this.slideInfoZone.setStyle('opacity',0);
var slideInfoZoneTitle = document.createElement('h2');
slideInfoZoneTitle.innerHTML = this.slideShowData[this.currentIter][2]
this.slideInfoZone.appendChild(slideInfoZoneTitle);
var slideInfoZoneDescription = document.createElement('p');
slideInfoZoneDescription.innerHTML = this.slideShowData[this.currentIter][3];
this.slideInfoZone.appendChild(slideInfoZoneDescription);
this.articleLink.appendChild(this.slideInfoZone);
this.articleLink.href = this.slideShowData[this.currentIter][1];
this.slideInfoZone.className = 'slideInfoZone';
this.slideInfoZone.normalHeight = this.slideInfoZone.getStyle('height', true).toInt();
this.slideInfoZone.styles.custom({'opacity': [0, 0.7], 'height': [0, this.slideInfoZone.normalHeight]});
},
/* метод скрытия инфо-области - просто выставляем пределы изменения непрозрачности от 0.7 до 0;
*/
hideInfoSlideShow: function() {
this.slideInfoZone.styles.custom({'opacity': [0.7, 0]});
}
};

/* функция инициализации слайд-шоу - создаем экземпляр класса timedSlideShow в переменной slideshow;
*/
function initTimedSlideShow(element, data) {
var slideshow = new timedSlideShow(element, data);
}
/* функция добавления обработчика нового события в обработчик события при загрузке страницы onLoad (window.onload);
старый обработчик запоминаем в переменной;
если тип обработчика не функция выставляем его на новую функцию func, ;
если же функция - создаем новую - включающую вызов старой и новой функций обработчика;
*/
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
Уф, Мы с Вами проделали большую работу: я по комментированию кода слайдера, а Вы по чтению данной статьи :)))

Я надеюсь описанная информация была Вам полезной.

Чтобы не быть голословным, хочу сказать, что Вы можете приобрести готовый модуль для слайдера, который включает весь описанный функционал,
плюс функционал на php для загрузки списка изображений для слайдера из текстового файла-списка, а также небольшую cms, которая покажет
Вам пример работающего сайта с уже подключенным слайдером -
Модуль слайдера + megainformatic cms express files

Спасибо за внимание !!!

Если Вам интересны другие продукты моего сайта или Вы хотите заказать разработку какого-либо специфического решения для web или просто хотите создать сайт под ключ - обращайтесь буду рад сотрудничеству !!!

подробнее

     
  Другие уроки можно посмотреть в разделе Статьи  
     
 

Краеугольная особенность работы Web-form на примере смены состояния checkbox.

казалось бы - что может быть проще - обычный checkbox - - но оказывается надо учитывать несколько особенностей для корректной работы с этим элементом управления на ваших Web-страничках

 
     
 

В предыдущем уроке - Использование checkbox мы познакомились с простым элементом управления для установки состояний вида Да/Нет

Однако как оказалось нужно учитывать не только особенности работы самих элементов управления web-страницами представленных тегом <input>, но и web форм - <form>.

 
     
 

В данном уроке мы рассмотрим следующие особенности:

- как работают веб-формы;

- как читать/сохранять данные веб-форм в файл;

- как читать/сохранять данные веб-форм в базу данных;

 
     
 

Для начала попробуем создать простейшую веб-форму содержащую знакомый нам checkbox, но чтобы состояние checkbox'а не пропадало бесследно, а сохранялось бы (и читалось бы) из файла.

Вот пример кода на php для реализации этой цели (файл называется checkbox4.php)

 
     
 

<HTML>
<HEAD>
<TITLE>Отслеживаем состояние checkbox'a в файле</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY>

<div style="width: 990px; margin: 0 auto; background: #777777;">
<div style="width: 900px; margin: 0 auto; background: #aaaaaa;">

<?php

/* Особенность работы checkbox'а

если чекбокс установлен - при отправке данных формы передается его значение value
если чекбокс не установлен - при отправке данных формы не передается ничего !!!

читаем/сохраняем состояние checkbox'а из файла

*/

//первым делом объявляем константу - имя файла где будем хранить состояние checkbox

//обратите внимание - нужно вручную создать папку data т. к. функция fopen с параметром w не умеет //создавать сразу и папку и вложенный в неё файл !!!
define (CHECKBOX_STATE_FILENAME, 'data/checkbox_state.txt');

//эта функция у нас читает состояние чекбокса из файла и возвращает значение $state
function read_state()
{
$state = 0;

if ( file_exists(CHECKBOX_STATE_FILENAME) )
{

$handler = fopen(CHECKBOX_STATE_FILENAME, "r");
$state = fread($handler, filesize(CHECKBOX_STATE_FILENAME));
fclose($handler);

}

return $state;
}

//эта функция - запишет состояние $state чекбокса в файл, если файла нет - он будет создан

//обратите внимание еще раз !!! папку data вы должны предварительно создать сами иначе код не будет //работать корректно !!!

//т. к. функция fopen с параметром w не умеет создавать сразу и папку и вложенный в неё файл !!!

function write_state($state)
{
//$state = 0;

$handler = fopen(CHECKBOX_STATE_FILENAME, "w");
fwrite($handler, $state);
fclose($handler);


//return $state;
}

//Эта функция нужна нам чтобы вывести фразу - Флажок установлен (сброшен)
function show_flag_state($state)
{
$state_phrase = $state ? "установлен" : "сброшен";
echo "Флажок был ".$state_phrase." <br>";
}

//читаем состояние флажка в переменную $published
$published = read_state();
//для атрибута checked задаем пустую строку
$checked = '';

//если флажок установлен
if ( $published )
{

//задаем атрибут checked
$checked = 'checked = "checked"';

}

//эта переменная нужна просто для указания части имени для checkbox'а
$num = 1;

//если была нажата кнопка Сохранить в веб форме

if ( $_POST['save'] )
{

//выставляем переменную $state в 1 или 0 в зависимости от установленности $_POST['published-'.$num]
$state = isset($_POST['published-'.$num]) ? 1 : 0;

//сохраняем значение флажка в файл
write_state($state);

//выводим фразу о том, что произошло
show_flag_state($state);

//выводим ссылку для возврата на страницу
echo "<br><a href='checkbox4.php'>вернуться</a>";
}
else {

//если страница была только что открыта (или обновлена) без нажатия кнопки Сохранить в форме

//выводим нашу веб-форму дав ей имя save_changes

//страницу обработчик - указываем саму себя - checkbox4.php

//метод отправки данных формы - ПОСТ
echo "<form name='save_changes' action = 'checkbox4.php' method = 'POST'>";

//выводим чекбокс
echo "<input type=\"checkbox\" ".$checked." name=\"published-".$num."\" value=\"".$published."\">";

//выводим кнопку Сохранить изменения
echo "<input type = 'submit' value = 'Сохранить изменения' name='save'>

//закрываем форму закрывающим тегом
</form>";
}


?>
</div>
</div>

</BODY>
</HTML>

 
     
 

Это чудо работает таким образом - если зададим состояние чекбокса и нажмём кнопку <Сохранить изменения>, то фраза Флажок установлен или сброшен - будет показывать состояние чекбокса.

Само состояние чекбокса будет браться из файла data/checkbox_state.txt

В файл будет заноситься 1 или 0 в зависимости от установленности (сброшенности) чекбокса.

Главная особенность веб-форм состоит в том, что результат выполнения операции бывает невозможно показать на странице с тем же состоянием - как правило требуется отдельная страница или вынесение кода для показа результата в отдельный условный блок кода.

Работающий пример на php смотрите тут - checkbox4.php

ВОТ и ВСЁ на сегодня. Ждите новых уроков.

 
     
  Другие уроки можно посмотреть в разделе Статьи  
     

Костя Коробкин - Компания Зергов (kk kz) - онлайн комикс - страница 4

Онлайн-комикс Костя Коробкин - Компания Зергов - интерактивный комикс (kk kz).

...

Костя Коробкин - Компания Зергов (kk kz) - онлайн комикс - страница 4

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1] [страница 2] [страница 3] [страница 4] 

megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 0,8763