0

なので、CakePHP ではいくつかのオプションを設定しています。オプションでは、クラス属性を次のようにしようとしています:

class='application_level_#'

# は $app_list 内のデータから取得されます。$app_list は次のようになります。

Array ( 
[0] => Array ( [Nature] => 5 ),
[1] => Array ( [Math] => 0 ), 
[2] => Array ( [Art] => 0 ) )

各学校に対応する要素で、名前がキー、値が出願レベルです。この値は # であるべきものです。関数を起動してグレードの値を取得するグレードを選択するユーザーがいます。次に、私の関数では、学校の選択を表示するための css をブロック (なしから) に変更し、class='application_level_#' を使用して各学校のラジオ要素を表示: ブロック (なしから) に Javascript を使用して変更しています。

私のschool_form_element.ctp:

<!-- Schools Element -->
<div id="school_selection"> 
    <?php
        $schools = $this->requestAction('/schools/index');
        $app_list = $this->requestAction('/schools/app_list');

        print_r($app_list);

        //Sets up a radio button. 
        echo $this->Form->input('school_selection', 
            array('type' => 'radio', 'options' => $schools, 'onclick' => 'showStudentInfoBox()', 'class' => '**app_list[id]** how to build this?'));
    ?>
</div>
<!-- End Schools Element -->

Javascript (form.js)

function showSchools(){
    var grade_radio = document.getElementsByName('data[StudentApplicationForms][grade_selection]');
    var application_level = null;

    for(var i=0, length = grade_radio.length; i < length; i++){
        if(grade_radio[i].checked){
            application_level = grade_radio[i].value;
            break;
        }
    }

    var school_options = document.getElementsByClassName('application_level_', application_level);
    school_options.style.display = 'block';

}

編集: CakePHP の JS ヘルパーを見るべきですか?

4

0 に答える 0