Получение значения скрытого поля ввода, используя Javascript в Yii2

У меня есть скрытое поле ввода в Посмотреть в 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?

0

Решение

Поскольку вы используете Model для построения своей формы, было бы лучше загрузить данные, используя метод Model.

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

Обратите внимание, что атрибут «путь» должен быть указан в правилах модели для загрузки методом «загрузки».
Вот пример:

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

Вы также можете найти более подробную информацию о проверке ввода пользователя здесь http://www.yiiframework.com/doc-2.0/guide-input-validation.html

1

Другие решения

В функции действия вашего контроллера вы можете получить значение скрытого ввода таким образом.

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector