なので、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 ヘルパーを見るべきですか?