【发布时间】:2016-01-02 22:43:52
【问题描述】:
我正在使用 yii2 Activeform 和 gridview
表单上有两个字段message 和file 和submit 按钮
和gridview在同一页..
因此,当用户从复选框列中选中任何用户并键入 message 时,应将message 发送给所有选定的用户
这是我到目前为止所做的事情
<div class="row">
<p>
<?php $form = ActiveForm::begin(['options'=>['enctype'=>'multipart/form-data','id' => 'message-form']]); ?>
<div class="form-group col-xs-3 col-lg-3">
<?= $form->field($model, 'message')->textarea(['rows' => 6]) ?>
</div>
<div class="form-group col-xs-3 col-lg-3">
<?= $form->field($model, 'file')->fileInput() ?>
<?= $form->field($model, 'keys[]')->hiddenInput()->label(false); ?>
<div class="form-group">
<?= Html::submitButton('Send',['class' => 'btn btn-danger','data-placement'=>'right','id'=>'sendMessage']) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
</p>
</div>
上面是表格。现在我可以得到keys 变量,但该数组的格式是这样的
Keys{
0="1,5,7,6,8"
}
我希望这种格式是这样的
Keys{
0="1",
1="2",
2="5",
3="7",
}
那么我怎样才能将数据连同message 和file 一起发送到该格式的控制器
目前我正在通过隐藏的输出字段发送数据,但它没有以我想要的格式发送数据。 我知道这可以使用 javascript 来完成,但不知道该怎么做??
这是我正在使用的 javaquery
$('input[type="checkbox"]').change(function() {
var keys = $("#checkin-table").yiiGridView("getSelectedRows");
sendKeys.val(keys);
if(keys.length > 0){
sendMessage.removeClass("disabled");
}
else if(keys.length==0){
sendMessage.addClass("disabled");
}
});
【问题讨论】:
-
如果你想转换上面的数组使用
explode():php.net/manual/en/function.explode.php -
@insaneSkulll 我想到了这一点,我可以做到,但
explode()需要将参数作为字符串,我需要先将其转换为字符串,然后再传递它,所以我正在考虑其他一些替代方案。可能正在使用javascript -
您可以使用
settype()函数将您的数组转换为整数数组。 -
@insaneSkull 好的,让我试试
标签: javascript jquery gridview yii2