powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / небольшой вопрос по краткости-сестре таланта)
25 сообщений из 113, страница 3 из 5
небольшой вопрос по краткости-сестре таланта)
    #38378367
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПрограмёрЭто всё "сегодня", "завтра" и "вчера" конечно круто, но если понадобится статистика по дням недели или ещё что подобное, то такая визуальная "удобная" среда станет очень неудобной.Надо иметь возможность делать дополнительные фичи не только в общем виде (в фреймворке), но и для конкретного проекта в конкретных местах. И при заказе новой фичи думать, где её разместить. Тогда и фреймворк не разрастается костылями, и проект спокойно пишется с учетом пожеланий заказчика.
Наследование, кстати, вполне себе для этого подходит.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38378384
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГхостикНаследование, кстати, вполне себе для этого подходит.

Я уже уточнил механизм наследования в соседних ветках. На любой вкус. Можно через мускул напрямую через имя пользователя и SHOW GRANTS. А можно через дополнительные созданные таблицы. То есть велосипедов множество, садись на любой.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38378519
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,

вы сейчас пытатетесь изобрести что то уже сущевтвующее. мой вам совет

1. найдите то что еще не изобретали
2. либо фрилансем возмите какой нить проект поделать - денежки хотябы заплатят
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38379388
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов, На вскидку - ничего сложного не вижу... бегать курсором по клеточкам - фигня дела )) js в руки и готово.... а вот логика таблиц на сервере:
создаём классы row, col, table, каждый из которых будет нести функционал определённой единицы данных...
row... по сути строку мы можем удалить, обновить или вставить... вот пускай предусматривает этих 3 метода (delete, update, insert), потом самое интересное - col... можно навешивать до потери пульса:
add - добавить столбец,
rename - переименовать столбец,
delete - удалить столбец,
show - показать столбец,
hide - скрыть,
setPk - установить как основной ключ,
setIndex - сделать индекным,
setUnique - сделать уникальным индексом,
setType - сменить тип (установить тип),
order - сортировка,
filter - фильтрация по значению столбца,
virt - если столбец виртуальный (то есть считается из других по разным формулам)
вроде основные...
table: методы rename, create, delete, reference(name, join_type, on)

итак, методы add, rename, delete, create, insert, update, setPk, setIndex, setUnique, setType - по сути выполняют конечный запрос... в каждый метод вешаем по запросу и готово (только в методах row надо завязаться на столбец со значением Pk в col)... но думаю тут сложного нету... методы show, hide - просто выставляют соответствующие флаги, что бы знать, что из этого показывать надо... order, filter, virt - на вход могут принимать список заготовок, созданных ранее, которые являются обычными выражениями и названия столбцов (или список экземпляров col)... (заготовки - типа шаблонов для замены... там есть спец символы, которые заменяются на названия введённых столбцов)... пишем в список :) методы virt и reference (у таблицы) пишут данные в отдельную таблицу базы, в которой (следует из названий) будут храниться виртуальные столбцы и связи таблиц...

выдача происходит просто, мы читаем все связи таблиц (в одну сторону, нужен механизм отслеживающий цикличности, что бы избежать зависания), потом после select ставим через запятую все столбцы всех таблиц, у которых был вызван метод show или не был вызван метод hide, потом идёт FROM основная таблица, потом JOIN - тип указывали при вызове метода reference, потом имя таблицы для связи и условие связи, потом WHERE список фильтров через запятую (по уровням, от главной до самых вложенных), потом ORDER по тому же принципу что и фильтры...

Потом можно привязать разные GROUP и т.д...

Все данные о показываемых столбцах (по сути список экземпляров col и table) храним в SESSION (так как данные типа show-hide, order и др. вообще относятся только к данной сессии).

Такой подход при своей относительной простоте будет обладать достаточной универсальностью... На эту часть (серверную) уйдёт около наверное недели-двух (если считать 8 часов рабочий день)... на клиентскую - фиг знает... насколько сложно захотите сделать... думаю тоже недельки 2 можно потратить (хотя что бы всё красиво и удобно, возможно и подольше)... Потому где-то так через месяц появится то, что можно будет отладить и начинать пользовать по мере использования дорабатывать...

Если ошибаюсь в чём-то (основное в подходе) - поправьте... сам такого ниразу не делал, потому могу человека не в ту сторону увести... но структура мне видится такой :).
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38379423
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы тут гугльдок не изобретаете? Если изобретаете, то начните с ExtJS'ного грида что-ли...
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38379922
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

Да, общая логика подхода у меня такая же как и вас. Вижу что вы тяготете больше к PHP. Я думаю что фильтры и сортировки и это больше предмет визуализации, наверное в javascript все эти манипуляшки стоит прописать. show и hide для пользовательских фильтров наверное тоже сделать в js лучше (мы же генерим массив тегов на страницу, а шинковать их наверное лучше при помощи js. Ну и так, чтобы кэш SESSION не перегружать лишними метаданными).


Самые большие грабли для меня, это JavaScript .

Вот к примеру прописал функцию (пока предварительно тестирую.) по вставке инпута в текущую/кликнутую ячейку таблицы:

Код: javascript
1.
2.
3.
4.
5.
6.
$(document).ready(function(){
$("td").click(function(){
var varX = this.innerHTML;
$(this).wrapInner("<input type='text' id='input1' value="+varX+">");
});
});



Ну то есть кликаю на ячейку <td> 12345 </td> , внутрь td вставляется input <td><input type="text" value=" 12345 " ></td>

Все работает отлично, но если нажать еще раз туда, то появляется хрень))
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380324
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,

Код: php
1.
2.
3.
4.
5.
6.
$(document).ready(function(){
$("td span").click(function(){
var varX = this.innerHTML;
$(this).parent().wrapInner("<input type='text' id='input1' value="+varX+">");
});
});




Код: php
1.
<td><span>12345</span></td>


помойму это ежику очевидно не?
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380360
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,не не, зачем здесь спан. Не это имею в виду. Имею в виду что когда я в первый раз кликаю на ячейке- создается инпут,значение value которого равно innerHTML текущего дива. А вот если еще раз тыкнуть в уже созданный инпут, то в нем появляется хрень. Я вижу решение в предварительной процедуре проверки, не является ли текущий элемент при нажатии инпутом, если является,то выше написанная процедура моя не выполняется. Если не является инпутом- то он соответственно создается и ячейку таблицы можно редактировать. А span для чего нужен тут, я чет не понял, не догнал.


Сейчас бьюсь над событием потери фокуса элемента td. То есть чтобы при нажатии на другую ячейку старый инпут удалялся, значение из него передавалось в старый див и процедура начиналась заново уже с текущей ячейкой таблицы. Как удалять нашел, а вот стоящее событие типа onblur что то пока не могу прикрутить.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380441
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Just for fun:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
<!DOCTYPE HTML>
<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  <style>
    table {
      border-collapse: collapse;
    }
      
    th, td {
      border: 1px solid gray;
    }
      
    td span, td input{
      border: none;
      display: block;
      margin: 0;
      padding: 0;
      outline: none;
      overflow: hidden;
      width: 148px;
    }
  </style>
</head>
<body>
  <table>
    <tr>
      <th>Tab - вперёд</th>
      <th>Shift + Tab - назад</th>
    </tr>
    <tr>
      <td><span tabindex="1">11223</span></td>
      <td><span tabindex="1">34455</span></td>
    </tr>
    <tr>
      <td><span tabindex="1">66778</span></td>
      <td><span tabindex="1">99001</span></td>
    </tr>
    <tr>
      <td><span tabindex="1">12233</span></td>
      <td><span tabindex="1">44556</span></td>
    </tr>
  </table>
  <script>
    $('td').on('blur', 'input', function(event) {
      var input = $(this), parent = input.parent();
        
      parent.html('<span tabindex="1">' + input.val() + '</span>');
    });
      
    $('td').on('focus', 'span', function(event) {
      var span = $(this), parent = span.parent();
        
      parent.html('<input tabindex="1" type="text" value="' + span.text() + '"/>');
      parent.children('input').focus();
    });
  </script>
</body>
</html>
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380447
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$('table').on('blur', 'td input', function(event) {
  var input = $(this), parent = input.parent();
        
  parent.html('<span tabindex="1">' + input.val() + '</span>');
});
      
$('table').on('focus', 'td span', function(event) {
  var span = $(this), parent = span.parent();
        
  parent.html('<input tabindex="1" type="text" value="' + span.text() + '"/>');
  parent.children('input').focus();
});
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380461
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Спасибо! Но я до такого еще не дошел))
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380479
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Интересно, а сколько вы проектов закончили в веб и сайтостроении ?
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380492
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если считать сайты, то

мелких: 1 Joomla
средних: 2 на ASP.NET WebForms, 1 PHP
крупных: 1 на ASP.NET WebForms, 1 на ASP.NET MVC (текущий, его ещё развивать и развивать)

но я в основном серверной разработкой сейчас занимаюсь
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380504
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Ну у вас за плечами куча реализованного. У меня из серьезных 3 на VB +ms SQL server . 2 халтуры еще из офисного хлама. Все многопользовательские.
И не одного на js,php,MySQL . )) поэтому прошу не судить строго)
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380523
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов, а я и не сужу. Хотите освоить JavaScript, рекомендую курсы и учебник . После читайте Закаса.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38380824
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловПрограмёр,

Да, общая логика подхода у меня такая же как и вас. Вижу что вы тяготете больше к PHP. Я думаю что фильтры и сортировки и это больше предмет визуализации, наверное в javascript все эти манипуляшки стоит прописать. show и hide для пользовательских фильтров наверное тоже сделать в js лучше (мы же генерим массив тегов на страницу, а шинковать их наверное лучше при помощи js. Ну и так, чтобы кэш SESSION не перегружать лишними метаданными).


Самые большие грабли для меня, это JavaScript .

Вот к примеру прописал функцию (пока предварительно тестирую.) по вставке инпута в текущую/кликнутую ячейку таблицы:

Код: javascript
1.
2.
3.
4.
5.
6.
$(document).ready(function(){
$("td").click(function(){
var varX = this.innerHTML;
$(this).wrapInner("<input type='text' id='input1' value="+varX+">");
});
});



Ну то есть кликаю на ячейку <td> 12345 </td> , внутрь td вставляется input <td><input type="text" value=" 12345 " ></td>

Все работает отлично, но если нажать еще раз туда, то появляется хрень))

Но, если у Вас будет выборка из 5 таблиц, при этом выборка нужны двух столбцов из четвёртой и пятой по одному.... Вы представляете сколько данных Вы будете клиенту отправлять? Это куча трафика, и длительное время выполнения.... Так что все фильтры и сортировки лучше делать в mysql напрямую, а уже обрабатывать отфильтрованные и отсортированные данные...
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382124
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
Спасибо! А как лучше настроить элементы таблицы для последующей с ней манипуляцией?
Имею в виду наследование типов данных.
Есть к примеру несколько основных типов (не копаем глубже, ) в моем понимании:

- целочисленный
- с плавающей точкой
- логический
- текстовый
- дата

Остальные типы не трогаю (которых на сервере великое множество), ибо для моих целей указанной выше классификации за глаза и по уши хватит.

Хочу спросить, могу ли я в качестве пользовательских типов, при генерации тегов td в качестве атрибута использовать свои наименования?

Ну к примеру в инпут у меня атрибут type будет = int , float , bol , strn , dte в зависимости от типа переменной.
Атрибут class в тегах таблицы я зарезервирую именами под Row (для tr ) и Col (для td ). А атрибуды ID и Name понадобятся для других целей.


Кстати нашел и потестировал пару неплохих JqGrid. Соблазн был велик. Но снес их. Так как хочется самому понять ,как это все работает. JqGridы c плагинами и виджетами это конечно здорово, но есть жгучее желание самому досконально раскопать как это все работает.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382178
интересно, а как всё это связано с ПэХаПэ!?
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382192
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто интересноинтересно, а как всё это связано с ПэХаПэ!?

Это связано с PHP следующим образом, есть ключевой момент, где необходимо будет принимать решение- делать скелет работы с фильтрами и обработке типов данных полей при помощи PHP или при помощи JS.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382361
Есть клиент, есть сервер... Всё что ты сейчас оcваиваешь - JS HTML - клиентская часть!
http://www.sql.ru/forum/html-javascript-css или неа? ;)
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382528
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловПрограмёр,
Спасибо! А как лучше настроить элементы таблицы для последующей с ней манипуляцией?
Имею в виду наследование типов данных.
Есть к примеру несколько основных типов (не копаем глубже, ) в моем понимании:

- целочисленный
- с плавающей точкой
- логический
- текстовый
- дата

Остальные типы не трогаю (которых на сервере великое множество), ибо для моих целей указанной выше классификации за глаза и по уши хватит.

Хочу спросить, могу ли я в качестве пользовательских типов, при генерации тегов td в качестве атрибута использовать свои наименования?

Ну к примеру в инпут у меня атрибут type будет = int , float , bol , strn , dte в зависимости от типа переменной.
Атрибут class в тегах таблицы я зарезервирую именами под Row (для tr ) и Col (для td ). А атрибуды ID и Name понадобятся для других целей.


Кстати нашел и потестировал пару неплохих JqGrid. Соблазн был велик. Но снес их. Так как хочется самому понять ,как это все работает. JqGridы c плагинами и виджетами это конечно здорово, но есть жгучее желание самому досконально раскопать как это все работает.

Типы - это не более чем просто валидация данных (ведь по сути всё, что вводит пользователь - это строки... а Вы их валидируете и если всё сходится - выполняете действие)... Валидацию лучше проводить на сервере тоже (так как я Вам что угодно с клиента могу отправить и сказать что всё провалидировал... это не безопасно). Для валидации можно предусмотреть определённый класс (от которого будут наследоваться). В нём обязательно есть метод validate (сама логика валидации), который принимает на вход нужную для валидации строку... Всё остальное неважно (пускай себе реализует что хочет... главное что бы validate был...)

По поводу грида - есть таблица (table, tr, td)... хотя лучше дивами делать... Таблица при вставке данных (или их удалении/изменении пересчитывает ширину столбцов, а это может быть очень долгий процесс, если данных много). Итак, в каждой ячейке любой текст заключён в span... При клике на ячейку спан меняется на инпут... теперь, по поводу смены:
что бы не записать данные не туда, куда надо, нам требуется знать таблицу, в которую будем писать, название столбца и значение primary key. эти 3 значения мы пишем в аттрибуты data-table, data-col и data-pk соответственно. И когда готовы отправить введённые данные, мы дёргаем эти значения и отправляем их вместе с введёным текстом... Тогда на сервере мы будет точно знать что и куда писать :)

Гуляние по гриду - это чисто js :) Вверх, вниз. влево, вправо - переход по ячейкам (сделать не сложно)... при нажати 2 раза на ячейке режим правки (тоже не сложно)... при нажатии энтер в поле ввода или кнопки таб например сохранение данных и переход на ячейку вправо (думаю тоже не сложно)... Сложно - это выделение ячеек мышкой, так как надо читать координаты, самому иммитировать выделение и всё такое, но и это за денёк думаю можно освоить в полной мере... не знаю, вроде всю идею (свою) высветит, как и что делается... если решите делать как я советую и что-то не будет получаться - пишите... )) постараюсь помочь.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382567
Програмёр
ты писал когда-нибудь распределённые системы?!
сидят два оператора с твоей таблицей в 65к ячеек и потихоньку вносят изменения...
как вариант - один удалил строку а второй пытается внести туда изменения...
или один обновил данные, а второй, невидя этого, перезаписал туда старые данные...

предложи вариант решения? ;)
авторно и это за денёк думаю можно освоить в полной мере...
добрый совет ;)
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382645
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто интересно,

Я как раз и писал БД расчитанные на одновременные пользования > 30 человек. Сделал три серьезных проекта MS Access + MS SQL server 2005. Один для транспортной компании, один для фабрики по производству литейной продукции, один для мобильного салона связи. Со всем фаршем в виде доступа по типу логин/пароль,ролями и.т.д. Плюс у меня на работе крутятся две базы (правда обычные разделенные части MS Access по типу клиент-сервер) в которых трудятся единовременно более 40 человек. Там есть таблицы порядка 60000 строк. Никаких проблем с правкой строк/залипаний логики не наблюдал. Операторы сидят и правят. Бывает что и одну строку, только разные поля единовременно. не вижу никаких проблем. Опыт есть. Опыт создания велосипедов в данном направлении есть, только десктопный.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382655
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И за денек можно освоить, самое главное чтобы интересно было:) С валидацией переменных в JS и PHP начал разбираться. В PHP гораздо почётче и построже это все. Более привлекателен именно вариант с PHP.
...
Рейтинг: 0 / 0
небольшой вопрос по краткости-сестре таланта)
    #38382697
авторОпыт создания велосипедов в данном направлении есть, только десктопный.
web - это не десктоп! здесь не канают общепринятые подходы в разработке десктопных приложений!!!
жаль, что ты увлёкся визуальной частью разработки - и пренебрегаешь изучением принципов взаимодействия клиента и сервера...
почитай на эту тему, что-нибудь - может осенит!
...
Рейтинг: 0 / 0
25 сообщений из 113, страница 3 из 5
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / небольшой вопрос по краткости-сестре таланта)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]