在 Yii2 中使用 Javascript 获取隐藏输入字段设置的值
Getting value of hidden input field set-in using Javascript in 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 中做到这一点?
在您的控制器操作函数中,您可以通过这种方式获取隐藏输入的值。
$post = Yii::$app->request->post();
$var = $post[$model->formName()]['path'];
由于您正在使用模型构建表单,因此最好也使用模型方法加载数据。
$model = new MyModel();
...
if ($model->load(Yii::$app->request->post())) {
$model->path; //Your field's value should be loaded here
}
请注意,'path' 属性应列在您要通过 'load' 方法加载的模型规则中。
这是一个例子:
class MyModel extends ActiveRecord
{
...
public function rules()
{
return [
[['path'], 'string'],
...
];
}
}
您还可以在此处找到有关验证用户输入的更多详细信息http://www.yiiframework.com/doc-2.0/guide-input-validation.html
我在 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 中做到这一点?
在您的控制器操作函数中,您可以通过这种方式获取隐藏输入的值。
$post = Yii::$app->request->post();
$var = $post[$model->formName()]['path'];
由于您正在使用模型构建表单,因此最好也使用模型方法加载数据。
$model = new MyModel();
...
if ($model->load(Yii::$app->request->post())) {
$model->path; //Your field's value should be loaded here
}
请注意,'path' 属性应列在您要通过 'load' 方法加载的模型规则中。 这是一个例子:
class MyModel extends ActiveRecord
{
...
public function rules()
{
return [
[['path'], 'string'],
...
];
}
}
您还可以在此处找到有关验证用户输入的更多详细信息http://www.yiiframework.com/doc-2.0/guide-input-validation.html