0

Yii フレームワークと Javascript は初めてです。今、min_cost と max_cost に 2 つのドロップダウン リストを使用しています。以下のコードを使用して、ドロップダウンリストに値をリストしています。

<?php 
$this->widget('ext.combobox.EJuiComboBox', array(
    'model' => $model,
    'attribute' => 'min_cost',
    'data' => Yii::app()->params['cost_min_resales'],
    'options' => array(
        'onSelect' => 'cost_change(item.value);',
        'allowText' => false,
    ),     
    'htmlOptions' => array('placeholder' => 'Min Cost', 'style'=>'width:70px'),
));
?>

</br>

<?php 
$this->widget('ext.combobox.EJuiComboBox', array(
    'model' => $model,
    'attribute' => 'max_cost',
    'data' =>Yii::app()->params['cost_max_resales'],
    'options' => array(                    
        'allowText' => false,
    ),
    'htmlOptions' => array('placeholder' => 'Max Cost', 'style'=>'width:70px'),
));                       
?>

このために、以下のスクリプトを使用しています。

<script>
    function cost_change(price) {
        var removed;
        console.log("removed", removed);
        select = "#SearchForm_max_cost_select";
        var value = price;
        console.log("value", value);
        jQuery('#SearchForm_max_cost_select').prepend(removed);
        var toKeep = jQuery('#SearchForm_max_cost_select option').filter(function() {
            return parseInt(this.value) > parseInt(value);
        });

        console.log("to keep",toKeep);
        removed =  jQuery('#SearchForm_max_cost_select option').filter(function() {
            return parseInt(this.value) < parseInt(value);
        });           
    }
</script>  

ここで、最初のドロップダウン リストで選択した値よりも大きな値を 2 番目のドロップダウン リストに入力します。(1,2,3,4,5) として配列にハードコーディングされた値があるとします。最初のドロップダウン リストから 2 を選択すると、2 より大きいすべての値 (つまり 3,4,5) が 2 番目のドロップダウン リストにリストされます。
上記のスクリプトは正常に動作します。ログに出力された 2 番目のドロップダウン リストの値を確認できます。しかし、この値を 2 番目のドロップダウンリストに渡すことができません。これどうやってするの。

編集: 以下は、 value を選択したときに得られるオブジェクトの画像です。 ここに画像の説明を入力

4

1 に答える 1

0

これは機能します。実際、私も同じ問題に直面していましたが、どういうわけかそれを理解しました。

コントローラーで、この状態を確認してください..

 if ($model->"yourdbid" == null) {
  $model->"yourdbid" = $_POST['yourdbid'];

}

于 2014-01-23T22:33:32.297 に答える