28

I'm trying to place data in hidden text in yii, but I don't know how. I need a similar code to a regular php syntax:

<input type="hidden" name="field_name" value="a"/>

It's supposed to be a field with static value of a. I just need it to go with my $_POST variables for error checking.

Is it possible to avoid modifying the models and controllers just to put the field in?I cant use gii cause I only have snippets of code with me.Sorry as well as I have little understanding of yii so I have no clue if what I'm saying about the last 2 sentences is correct.

niac
  • 33
  • 2
  • 17
marchemike
  • 3,179
  • 13
  • 53
  • 96

8 Answers8

58

in views

hidden field with model and form:

<?php echo $form->hiddenField($model, 'name'); ?>

or without model

<?php echo CHtml::hiddenField('name' , 'value', array('id' => 'hiddenInput')); ?>
Developerium
  • 7,155
  • 5
  • 36
  • 56
10

Yii hidden input :

<?php echo $form->hiddenField($model,'fieldName',array('value'=>'foo bar')); ?>
Developerium
  • 7,155
  • 5
  • 36
  • 56
Alireza Fallah
  • 4,609
  • 3
  • 31
  • 57
10

In Yii2 this has changed too:

<?= Html::activeHiddenInput($model, 'name') ;?>

References:

http://www.yiiframework.com/forum/index.php/topic/49225-activeform-how-do-you-call-label-input-and-errors-individually/

https://github.com/yiisoft/yii2/issues/735

Coz
  • 1,875
  • 23
  • 21
3

if data from database and value or size field:

echo $form->hiddenField($experience,'job_title',array('size'=>'50','value'=>$experience_data['job_title'])); ?>
Tchaps
  • 865
  • 7
  • 21
3

Yii 1

<?php echo $form->hiddenField($model, 'name'); ?>

Yii2

<?= Html::activeHiddenInput($model, 'attribute', ['value' => 'Some Value']) ?>

Also, worth noting for Yii2, the array parameter works different to a normal form field. E.G. A normal input would look more like this.

<?= $form->field($model, 'attribute', ['inputOptions' => ['placeholder' => 'Some Placeholder', 'value' => 'Some Input Value']]) ?>

Hope this helps.

johnsnails
  • 1,971
  • 20
  • 29
3

for yii2 you can try this

<?= $form->field($model, 'user_type',['inputOptions' => ['value' => '2']])->hiddenInput()->label(false) ?>

It worked for me

Shuhad zaman
  • 3,156
  • 32
  • 32
1

Alternatively,

echo CHtml::activeHiddenField($model,"[$i]id", array("value" => $model->id));

This would set hidden field value as the id from model. The [$i] is useful for multiple record update.

happyhardik
  • 24,987
  • 7
  • 47
  • 60
0

Here are two ways to do that...

without model

echo CHtml::hiddenField('name' , 'value', array('id' => 'name'));

with model

echo $form->hiddenField($model, 'name');
Asfandyar Khan
  • 1,677
  • 15
  • 34