Поделитесь опытом работы с формами

StalkerClasses

Новичок
Раньше до перехода на фреймворк, у меня было три функции:
<input name="user" value="<?=safeValue('user',$var);?>">
аналогичная для select
и еще одна аналогичная.

Посмотрел как делают формы в Yii2 - получается что взяв верстку от верстальщика, ее нужно снести, создать виджет и прописать все в этом виджете атрибуты.


Как по опыту при работе с большим кол-вом форм лучше делать?
Так: <input name="" atr1="" atr2="" atr3="" atr4="" atr5="" atr6="" value="<?=widgetValue();?>">
Или так: <?=fieldName(['username', 'attr1'=>'', и т.д.]);

В первом случае вижу что верстка сохраняется и проще ориентироваться.
 

AnrDaemon

Продвинутый новичок
По мне, форма должна уже от верстальщика приходить. Почему ты копаешься в шаблонах, когда на это есть отдельный человек?
 

StalkerClasses

Новичок
Форма есть от верстальщика.
Вопрос в другом - я сделал ее на Yii2 - сейчас, и получается что там все верстка переведена в виджеты.

Получилось вот так (пример):
Код:
    <table border="0" width="100%">
    <tr><td width="100%"><?=$form->field($model, 'username')->textInput(['placeholder'=>'Ваше имя','class'=>'styler'])->label(false);?></td></tr>
    <tr><td width="100%"><?=$form->field($model, 'telephone')->textInput(['placeholder'=>'Ваш контактный телефон','class'=>'styler'])->label(false);?></td></tr>
    <tr><td width="100%"><?=$form->field($model, 'bodytext')->textarea(['rows'=>'6','placeholder'=>'Введите ваше сообщение','class'=>'styler'])->label(false);?></td></tr>
    <tr>
        <td colspan="2" align="center">
            <div>
                <?= Html::submitButton('Отправить заявку',['class'=>'styler-submit'])?>
            </div>
        </td>
    </tr>
    </table>
Если ли бы делал по старому варианту то получилось бы вот так (пример):
Код:
    <table border="0" width="100%">
    <tr><td width="100%"><input name="username" value="<?=safeValue('username', $var1);" class="" placeholder=""></td></tr>
    <tr><td width="100%"><input name="telephone" value="<?=safeValue('telephone', $var1);" class="" placeholder=""></td></tr>
    <tr><td width="100%"><textarea name="bodytext" class="" placeholder=""><?=safeValue('bodytext', $var1);></textarea></td></tr>
    <tr>
        <td colspan="2" align="center">
            <div>
                <button type="submit" class="">Отправить заявку</button>
            </div>
        </td>
    </tr>
    </table>
Получается что во втором варианте визуально сохраняется верстка.
Как лучше делать на перспективу что бы понимать.
 

WMix

герр M:)ller
Партнер клуба
Как лучше делать на перспективу что бы понимать.
PHP:
public function formdataAction(){
  return json_encode(['username' => $var1,...]);
}

остальное должен клиент делать
PHP:
<td><input id="username" /><td>

//еще 10 лет назад писали так
$.ajax('/formdata.json').success(function(data){
  $('#username').val(data.username);
});
 
Сверху