在Yii2中使用Javascript获取隐藏输入字段的值

时间:2016-01-02 12:00:34

标签: javascript php yii2 active-form

我在ActiveForm

中的视图中有一个隐藏的输入字段
<?php $form = ActiveForm::begin(); ?>

    <input type="file" id="i_file" name="uploadfile" value="" onchange="abc()"> 
    <?= $form->field($model, 'path')->hiddenInput() ?>
    <div class="form-group">
        <?= Html::submitButton('submit', ['class' => 'btn btn-primary']) ?>
    </div>
<?php ActiveForm::end(); ?>

我使用Javascript设置它的值,如下所示:

<script>
function abc(){
    var tmppath = URL.createObjectURL(event.target.files[0]);
    $("#taskreports-path").val(tmppath);

alert(document.getElementById("taskreports-path").value);
}   
</script>

警报显示该值已成功设置到该字段中。 现在我想在某些php变量中输入该字段的值,如:

$var path = //<?= $form->field($model, 'path')->hiddenInput() ?> this field's value

我怎样才能在Yii2中做到这一点?

2 个答案:

答案 0 :(得分:1)

由于您使用Model来构建表单,因此最好使用Model方法加载数据。

$model = new MyModel();
...
if ($model->load(Yii::$app->request->post())) {
    $model->path; //Your field's value should be loaded here
}

请注意&#39;路径&#39;属性应该列在您的模型规则中,以便加载&#39; load&#39;方法。 这是一个例子:

class MyModel extends ActiveRecord
{
   ...
   public function rules()
   {
       return [
           [['path'], 'string'],
           ...
       ];
   }
}

您还可以在此处找到有关验证用户输入的更多详细信息http://www.yiiframework.com/doc-2.0/guide-input-validation.html

答案 1 :(得分:0)

在你的控制器动作的功能中,你可以通过这种方式获得隐藏输入的值。

$post = Yii::$app->request->post();
$var = $post[$model->formName()]['path'];