我对yii 2有点问题。这是我的情况: 我管理两个表,客户和订单,任何订单都有客户。我创建了关系数据和普通视图来创建,更新,查看和删除数据库中的数据。现在我将在订单的_form视图中使用客户的搜索模型(创建和更新数据)来选择客户并拉出我想要保存在 customer.id > order.id_customer
使用我的解决方案,我可以在创建视图中看到带有客户搜索的gridview,但是(使用RadioColumn)它不会返回 customer.id ,当我尝试过滤数据时表单不会过滤任何内容,但它会尝试将我的输入提交到数据库。
旧的" _form"代码在pastebin上。
有什么建议吗?
谢谢!
-----------------------的更新 ---------------- -------------
经过几个小时的工作,我解决了我的问题。 现在我的gridview不在activeform中,我通过javascript函数复制了收音机的回复。
这是代码:
<script type="text/javascript">
var agente = document.getElementById('agente');
var radioSelAgente = document.getElementsByName('radioAgenteId');
function aggiungiAgente(){
for (var i = 0, length = radioSelAgente.length; i < length; i++) {
if (radioSelAgente[i].checked) {
document.getElementById('contrattoformativo-id_agente_iscritto').value=radioSelAgente[i].value;
alert(radioSelAgente[i].value);
break;
}
}
}
<form id="formAddAgente" onclick="aggiungiAgente()">
<?php
$agenteModel = new \backend\models\Agente();
$agenteSearchModel = new \backend\models\AgenteSearch();
$agenteDataProvider = $agenteSearchModel->search(Yii::$app->request->queryParams);
$agenteDataProvider->pagination->pageSize=5;
?>
<?php
echo \kartik\grid\GridView::widget([
'dataProvider' => $agenteDataProvider,
'filterModel' => $agenteSearchModel,
'id'=>'agente',
'columns' => [
[
'class' => '\kartik\grid\RadioColumn',
'width'=>'36px',
'name' => 'radioAgenteId',
'showClear' => false,
'radioOptions' => function($agenteModel, $key, $index, $column) {
return ['value' => $agenteModel->id];
},
],
'nome',
'cognome',
],
'export'=>false,
'pjax'=>true,
'pjaxSettings'=>[
'neverTimeout'=>true,
],
]);
?>
</form>
我以积极的形式:
<?= Html::activeHiddenInput($model, 'id_agente_iscritto') ;?>
再见!