removeByName('ApiVersionID'); $versions = OpenStackApiVersion::get()->map('ID', 'Version'); $ddl = new DropdownField('ApiVersionID', 'API Version', $versions); $ddl->setEmptyString('--Select An API Version --'); $fields->insertAfter($ddl,'OpenStackComponentID'); $versions = array(); foreach(OpenStackComponent::get()->filter('SupportsVersioning',true) as $component){ foreach($component->getVersions() as $version){ if(!array_key_exists(intval($component->getIdentifier()),$versions)){ $versions[intval($component->getIdentifier())] = array(); } array_push($versions[intval($component->getIdentifier())],array('value' => intval($version->getIdentifier()), 'text' => $version->getVersion())); } } $json_data = json_encode($versions); $script = << var versions = {$json_data}; (function($) { var ddl_component = $('#Form_ItemEditForm_OpenStackComponentID'); var ddl_versions = $('#Form_ItemEditForm_ApiVersionID'); ddl_component.change(function(event){ var component_id = $(this).val(); var component_versions = versions[component_id]; ddl_versions.empty(); //remove all child nodes ddl_versions.html(''); ddl_versions.append(""); $.each(component_versions, function (i, item) { ddl_versions.append($('"); $.each(component_versions, function (i, item) { ddl_versions.append($('