Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2016, 16:09   #1
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию PHP. Приведение кода в универсальное состояние

Доброго времени суток.
Может кто ни будь сможет натолкнуть на мысль.
Нужно вставить в таблицу БД новую запись.
Форму организована следующим образом(рисунок 1)
Получается тегом <option> пользуюсь 1 раз(combobox html5) - вывод списка групп для выбора. И требуется он только 1 раз для 3-го инпута.

Не придумав ничего умнее сделал такой вариант:
PHP код:
        $result = array();
        
$select explode(','UsersController::select()); //массив для name инпутов
        
unset($select[0]);
        
$table_head UsersController::table_head(); //массив для плейсхолдеров и описания вверху инпутов
        
unset($table_head[0]);
        
        
$i count($select);
        
$result[0] = $table_head;
        
$result[1] = $select;
        
$result[2] = array('','glyphicon glyphicon-user''glyphicon glyphicon-globe'
            
'glyphicon glyphicon-briefcase''glyphicon glyphicon-phone-alt''glyphicon glyphicon-home',
            
'glyphicon glyphicon-phone-alt''glyphicon glyphicon-home', );//иконки)
        
        
$options Users::getSel();//получаем массив для комбобокса
        
        
$res '';

for (
$q 1$q<=2$q++ ) //делаем первые 2-а инпута
        
{
            
$res .= $result[0][$q].'<br>'
            
.'<div class="input-group">'
                
.'<div class="input-group-btn">'
                    
.'<label for="'.$result[1][$q].'" class="btn btn-default">'
                        
.'<span class="'.$result[2][$q].'"></span>'
                    
.'</label>'
                
.'</div>'
                
.'<input id="'.$result[1][$q].'" name="'.$result[1][$q].'"'
                
.'placeholder="'.$result[0][$q].'" autofocus type="text"  class="form-control">';
            
$res .= '</div><br>';
        }

//тут делаем комбобокс
        
$res .= $result[0][3].'<br>'
        
.'<div class="input-group">'
            
.'<div class="input-group-btn">'
                
.'<label for="'.$result[1][3].'" class="btn btn-default">'
                    
.'<span class="'.$result[2][3].'"></span>'
                
.'</label>'
            
.'</div>'
            
.'<input id="'.$result[1][3].'" name="'.$result[1][3].'"'
            
.' placeholder="'.$result[0][3].'" autofocus type="text" list="getlist" class="form-control">'
            
.'<datalist id="getlist">';

        foreach (
$options as $getopt)
            {
                
$res .= '<option value="'.$getopt['note'].'">'.$getopt['note'];
            }   

        
$res .= '</datalist></div><br>';
            
        for (
$q 4$q<=$i$q++ ) //с 4-й позиции продолжаем делать инпуты до конца
        
{
            
$res .= $result[0][$q].'<br>'
            
.'<div class="input-group">'
                
.'<div class="input-group-btn">'
                    
.'<label for="'.$result[1][$q].'" class="btn btn-default">'
                        
.'<span class="'.$result[2][$q].'"></span>'
                    
.'</label>'
                
.'</div>'
            
.'<input id="'.$result[1][$q].'" name="'.$result[1][$q].'"'
            
.'placeholder="'.$result[0][$q].'" autofocus type="text"  class="form-control">';
            
$res .= '</div><br>';
        } 
Он ужасен.
Так же есть и другие страницы которые требуют форму ввода.
Так что мой вариант, не вариант совсем.
Можете как нибудь, что ни будь подсказать, как сделать универсальный вывод для всех страниц с учетом того, что комбобокс может находиться не только на 3-й позиции сверху, но и не быть одним.
Изображения
Тип файла: png рисунок 1.png (19.5 Кб, 42 просмотров)
Artsiom вне форума Ответить с цитированием
Старый 18.10.2016, 16:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в слове "Комментарий" Вы буковку "н" потеряли..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.10.2016, 17:36   #3
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Эээ, да
Artsiom вне форума Ответить с цитированием
Старый 18.10.2016, 19:19   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Artsiom Посмотреть сообщение
как сделать универсальный вывод для всех страниц с учетом того, что комбобокс может находиться не только на 3-й позиции сверху, но и не быть одним.
Вынести код формирования комбобокса (и других повторяющихся элементов формы) в функции|методы – и с их помощью строить формы с любой последовательностью и любым количеством этих элементов, просто вызывая эти функции|методы в нужных местах, и передавая в них нужные параметры.
Andkorol вне форума Ответить с цитированием
Старый 18.10.2016, 21:06   #5
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Чёрт возьми.
Решение же было на поверхности!

Спасибо!)
Artsiom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода с PHP JustSoX C# (си шарп) 1 26.07.2016 11:29
Универсальное сравнение объектов WorldMaster C# (си шарп) 14 08.05.2013 19:13
Универсальное событие в JavaScript Vervolf JavaScript, Ajax 6 25.12.2011 17:00
Расшифровка php кода Bi0Dim PHP 1 20.02.2011 20:13
Защита php-кода dimonnnn Безопасность, Шифрование 2 20.08.2010 11:57