我在尝试在yii2的onchange中传递两个变量时遇到麻烦。以下代码不起作用。
_形成
<?= $form->field($model, 'commodity')->dropDownList(
ArrayHelper::map(['empty'=>'Empty string'], 'id', 'value'),
[
'prompt'=>'------- Select --------',
'id'=>'pcommodity',
'disabled'=>"disabled",
'style' => 'width:250px',
'onchange'=>
'$.post("/import-conditions/plants/listsspecies?
name='.'" +$(this).val(),function(data)
{
$( "select#pspecies").html(data)
})
here is the problem
**$.post("/import-conditions/plants/listsintendeduse?name='.'"
+$(this).val(),function(data)'.'+$(category).val(),function(data)
{
$( "select#pintendeduse").html(data)
})**
$.post("/import-conditions/plants/listsorigin?name='.'"
+$(this).val(),function(data)
{
$( "select#porigin").html(data)
})
;'
])->label(false);?>
该表单信息将传递给控制器,这里是控制器的代码。
public function actionListsintendeduse($name,$category)
{
$countMaindata= Plants::find()
->where(['commodity'=> $name,'category'=>$category])
->count();
$maindata = Plants::find()
->select('intendeduse')
->where(['commodity'=> $name,'category'=>$category])
->orderBy(['intendeduse'=>SORT_ASC])
->distinct()
->all();
if($countMaindata > 0)
{
// echo '<option value="">Select intendeduse </option>';
foreach ($maindata as $main)
{
echo "<option value='".$main->intendeduse."'> ".$main->intendeduse."</option>";
}
}else{
echo "<option> - </option>";
}
}
我正在尝试传递两个变量,并让控制器按这两个变量进行过滤。
最佳答案
您有语法错误
尝试这个
$.post(
"/import-conditions/plants/listsintendeduse?name="
+$(this).val() + "&category=" + $(category).val(),
function(data) {
$( "select#pintendeduse").html(data)
}
)