Решаем разные задачки!

Статус
Закрыто для дальнейших ответов.

motek

злой как @
Регистрация
13.04.2010
Сообщения
730
[member=motek], Это прикольно, но просветите пожалуйста, как происходит валидация, всмысле на какое действие, при каких параметрах, а то потестил - не вышло?
а можно пример теста?
валидация простейшая - если неправильно набран адрес - он будет обведен красной рамкой в два пикселя,а если правильно - то зеленой :)
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
Это прикольно, но просветите пожалуйста, как происходит валидация
Это теперь работа браузера. HTML 5 рулит.

Потестите такой код:

Код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>e-mail validate</title>
<style type="text/css">
input[type=email]:valid {
outline: 2px #0f0 solid;
}
input[type=email]:invalid {
outline: 2px #f00 solid;
}
</style>
</head>
 
<body>
<form action="#" >
<fieldset style="display:inline">
<legend>E-mail: </legend>
<input type="email" name="email" required="required" />
<p style="text-align:center">
<input type="submit" />
</p>
</fieldset>
</form>
</body>
</html>
 

антиКИЛЛЕР

Well-Known Member
Регистрация
28.07.2011
Сообщения
92
есть чуть более чем дофига вариантов. зависит от задач, т.к. обычно использую хлебные крошки то обычно делаю:
id(int) name(string) sort(int) level(int), parent_id(int). Уровень вложенности позволяет создать запрос, заджойнив паренты стоьлко раз, какая вложенность. А от родителя мало знаю задач, когда нужно выбирать всю ветку, так что обычно хватает. Полностью дерево строится проходом while и построением ассоциативного массива типа id=>array('name','childes'=>array(id_childe1,id_childe))
Примерно такую систему (двоичное дерево) я испльзую в тех случаях, когда в БД может быть много очень данных. Меню же обычно не большое и в нём нет нуэны выводить только часть. Для меню я использую обычно так же while с рекурсией.

Код:
filter_var('Email12@.ru', FILTER_VALIDATE_EMAIL)
Спасибо вам. Даже и не знал о наличии такой функции и использовал регулярные выражения для фильтрации обычно. Вот уж действительно - необходимо иной раз перелистовать в мануале список всех функций, а не кидать решать проблему как это делают всё.

Мой вариант решения:
Представить структуру БД и программу, выводящую древовидное меню (неплохо будет предусмотреть возможность сортировки меню).

Привожу, как и обещал, мой пример решения моей же задачи. Пример правда приводится в урезанном варианте, в полном варианте есть ещё и другие поля в БД, отвечающие за видимость или не видимость элемента меню в определённых условиях, а сам метод вывода меню работает немного по другому (в связи с шаблонизатором + дополнительные проверки на необходимость отображения данного пункта меню)
Итак, для начала структура БД:
Код:
CREATE TABLE IF NOT EXISTS `menuTable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) DEFAULT NULL,
  `page` text NOT NULL,
  `name` text NOT NULL,
  `order` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `page_unique` (`page`(50))
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
 
--
-- Дамп данных таблицы `menuTable`
--
 
INSERT INTO `menuTable` (`id`, `pid`, `page`, `name`, `order`) VALUES
(3, NULL, 'Пункт 1', 'Пункт 1', 0),
(4, NULL, 'Пункт 2', 'Пункт 2', 1),
(5, NULL, 'Пункт 3', 'Пункт 3', 2),
(6, 3, 'Пункт 1.1', 'Пункт 1.1', 0),
(7, 3, 'Пункт 1.2', 'Пункт 1.2', 1),
(8, 4, 'Пункт 2.1', 'Пункт 2.1', 0),
(9, 4, 'Пункт 2.2', 'Пункт 2.2', 1),
(10, 4, 'Пункт 2.3', 'Пункт 2.3', 2),
(11, 8, 'Пункт 2.2.1', 'Пункт 2.2.1', 0),
(12, 8, 'Пункт 2.2.2', 'Пункт 2.2.2', 1);
Комментарий по структуре: В поле PID хранится ID элемента, подкунктом к которому является данный. Если null, то значит корневой.
PAGE задаёт адрес скрипта, на который будет ссылаться пункт меню, а NAME - текст пукнта меню. (у меня они одинаковые для простоты, это же пример, а не реальная БД).

А внутри некоего класса у меня есть метод вывода меню:
Код:
  function printMenu($pid='is null',$padding=0)
  {
	$sql="SELECT * FROM `menuTable` WHERE pid ".db::quote($pid)." ORDER BY `order`,`id`,`pid`";
	$menu=$GLOBALS['db']->query($sql);
	while($putnk=$menu->fetch(PDO::FETCH_ASSOC))
	{
	  $str.='<a href="'.$putnk['page'].'.php" style="padding-left:'.$padding.'px">'.$putnk['name'].'</a>';
	  $str.=$this->printMenu($putnk['id'],$padding+20);//получаем и добавляем потомков текущего пунта меню
	}
	return $str;
  }
объект $GLOBALS['db'] - это обьект PDO для MySQL создаваемый при иниализации приложения, а db::quote это статический метод класса-обёртки для PDO, который обрабатывает параметры перед формированием SQL-запроса для исключения SQL-иньекций.

Собственно вот.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Задача по HTML(5)+CSS(3)
Первая часть задачи:
Есть блок, в котором имеются еще блоки (представьте себе галерею картинок), именно блоки, в которых может быть любое однотипное содержание. Ширина внутренних блоков фиксированная, а вот основной блок резиновый.
Необходимо добиться (без использования JS) чтобы блоки были плавающие, т.е. при уменьшение/увеличивание окна...в общем типа float: left/right.
При этом что бы они равномерно растягивались по все ширине экрана (расстояние между ними)

Вот схематически как это выглядит
Untitled-1.png
1 схема - блоки стоят по умолчанию верстки
2 и 3 схемы - как должно быть при уменьшение ширины основного блока (любой из результатов, но будет замечательно если оба варианта будут предоставлены). Т.е. блоки должны равномерно распределяться.

Работоспособность в современных браузерах (Опера, ФФ, Хром).

ЗЫ Сорри за каламбур слов... спать пора.
 

motek

злой как @
Регистрация
13.04.2010
Сообщения
730
Задача по HTML(5)+CSS(3)
.....
ЗЫ Сорри за каламбур слов... спать пора.

какая ширина и высота фиксированного блока?
какая минимальная и максимальная ширина резинового блока?
...спать в десять утра? :blink: :)
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
какая ширина и высота фиксированного блока?
какая минимальная и максимальная ширина резинового блока?
Какие хочешь.


Вот пример сделал
http://demo.g63.ru/center_block.html
Задача: добиться, что бы внутренние блоки равномерно распределялись по всей ширине основного контейнера.

...спать в десять утра? :blink: :)
А почему бы и нет? Некоторые и в 10 вечера ложатся спать.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ