目前在 Yii 中,我在列表框上有一个 ajax 调用,在选择时会动态修改下一个框。ajax 调用当前指向我的控制器和方法。
public function actionDynamicProducts()
{
foreach($_POST['ProductGroups']['id'] as $productGroups){
$groupedP=GroupedProducts::model()->findAll('product_group_id=:product_group_id', array(':product_group_id'=>$productGroups));
$groupedP=CHtml::listData($groupedP,'id','product_id');
foreach($groupedP as $value=>$product_id){
$data=Products::model()->findAll('id=:id', array(':id'=>$product_id));
$data=CHtml::listData($data,'id','title');
foreach($data as $value=>$title){
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($title),true);
}
}
}
}
目前它工作得很好,但我想做的是相反的,如果选择了一个组,下一个框不会显示与之相关的产品。我试过$data=Products::model()->findAll('id!=:id', array(':id'=>$product_id));
了,但如果选择了多个项目,它只会显示不可用的内容。例如
$Products =
Array (
0 => Ties
1 => Shirts
2 => Jeans
)
$groupProducts =
Array (
0 => Shirts and Jeans
1 => Ties
2 => Jeans and Ties
)
如果我选择衬衫和牛仔裤,我只想显示领带。或者,如果我选择 Shirts and Jeans,Ties 什么也不应该显示。