Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Циклы для smarty - не могу разобраться.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dropoff
Отправлено: 05 Августа, 2011 - 16:24:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Всем привет.
Подскажите пожалуйста, как правильно реализовать задуманное.

PHP:
скопировать код в буфер обмена
  1.                 $result = $db->query("SELECT * FROM s_forms_fields WHERE form = '" . $form_db['id'] . "'");
  2.  
  3.                 $list = array();
  4.                 while($field = $db->fetch($result))
  5.                 {
  6.                         $option_list = '';
  7.                         switch($field['type'])
  8.                         {
  9.                                 case 1: $where = 1; break;//input
  10.                                 case 2: $where = 2; break;//text
  11.                                 case 3:
  12.                                         $where = 3;//select
  13.                                         $opt_arr = explode("\n", $field['default']);
  14.                                         foreach($opt_arr as $opt)
  15.                                         {
  16.                                                 if(!empty($opt)) $option_list .= '<option value="' . trim($opt) . '">' . trim($opt) . '</option>';
  17.                                         }
  18.                                         break;
  19.                                 case 4: $where = 4; break;//date
  20.                         }
  21.                        
  22.                         $list[] = array(
  23.                        
  24.                                 'where' => $where, // собственно, тип
  25.                                 'title' => $field['title'], // заголовок ( label )
  26.                                 'name' => $field['name'], // name атрибут
  27.                                 'default' => $field['default'], // значение по умолчанию
  28.                                 'option' => $option_list,
  29.                        
  30.                         );
  31.  
  32.                 }
  33.  
  34.                 $tpl->assign('LIST', $list);


В кейсах определяется какой тип поля будет выведен
в кейсе 3 вывод select меню.

в шаблоне не знаю как правильно в цикле все оформить

CODE (html):
скопировать код в буфер обмена
  1. {if $list.where == '1'}
  2. <label >{$list.title}:</label>
  3. <input type="text" size="20" name="{$list.name}" class="text" value="{$list.default}" id="{$list.name}"  />
  4. {/if}
  5.  
  6. {if $list.where == '4'}
  7. <label >{$list.title}:</label>
  8. <input type="text" size="20" name="{$list.name}" class="text" value="{$list.default}" id="{$list.name}" />
  9. {/if}
  10.  
  11. {if $list.where == '3'}
  12. <label >{$list.title}:</label>
  13. <select name="{$list.name}" id="{$list.name}">{list}</select>
  14. {/if}
  15.  
  16. {if $list.where == '2'}
  17. <label>{$list.title}:</label>
  18. <textarea cols="30" rows="6" name="{$list.name}" id="{$list.name}" style="width:400px;">{$list.default}</textarea>
  19. {/if}


С учетом того, что в кейсе 3 выводится еще и список в цикле.
Пол дня бьюсь, ничего не получается(
 
 Top
smumrik
Отправлено: 05 Августа, 2011 - 17:05:37
Post Id



Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




чувак, здесь по смарти походу никто не отвечает (да так и есть)
 
 Top
illy
Отправлено: 05 Августа, 2011 - 17:08:43
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




smumrik пишет:
чувак, здесь по смарти походу никто не отвечает (да так и есть)
Ха-ха понятия не имею. Может это типа CMS ?


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
dropoff
Отправлено: 05 Августа, 2011 - 22:46:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Ребят, ну помогите кто-то плиз.
А то уже отчаялся. Не пойму как цикл правильно сделать. + вложенный, если выбран select (кейс 3)
 
 Top
smumrik
Отправлено: 05 Августа, 2011 - 22:59:00
Post Id



Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




вложенные циклы не знаешь? а зачем он в шаблоне? ты же в скрипте сформировал $option_list уже!
для начала то, что написал в "CODE (html):" нужно в цикл поместить
{foreach from=$LIST item=item}
{* тело основного цикла *}
{* теперь смотрим что в $item.where *}

...................
{if $item.where == '3'}
<label >{$item.title}:</label>
<select name="{$item.name}" id="{$item.name}">{$item.option}</select>
{/if}

...............
{/foreach}

да и еще...и вывести сам шаблон после определения переменных в PHP не забудь - у тебя в коде этого нет.... Подмигивание

(Отредактировано автором: 05 Августа, 2011 - 23:09:47)

 
 Top
dropoff
Отправлено: 05 Августа, 2011 - 23:13:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




{foreach from=$LIST item=item} - я просто не вставил сюда. так та он есть.
Я не могу понять что внутри цикла делать. Почему-то что не пытаюсь делать, ничего не выводил.

вывод в шаблон есть. я просто все копипастить не стал.
(Добавление)
Во. Получилось!
Спасибо за помощь!!
(Добавление)
Я так и не понял в чем косяк был.
Все поправилось после изменения $LIST на $fieldsList и в цикле $item. заменил на $field.
в этом файле никаких $LIST больше нигде нет и не было, кроме как передачи в цикл
 
 Top
smumrik
Отправлено: 05 Августа, 2011 - 23:27:03
Post Id



Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




dropoff
давай сообразим тему для новичков чисто по смарти?
а то как-то кисло всё тут...
(Добавление)
я думаю косяк был в неправильных названиях переменных
 
 Top
dropoff
Отправлено: 05 Августа, 2011 - 23:40:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Да я сам новичок) Такие вот простые вещи, как названия переменных путаю))
Хотя тема бы по smarty не помешала.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB