jquery - Mostrar contenido de Seleccionar Cuadro basado en otro Cuadro de Selección en Symfony 2.1
listbox symfony-2.1 (1)
La respuesta en Cómo usar la casilla de selección relacionada en otro cuadro de selección? me ayudó a comenzar, y mi código funciona si codigo el id del primer cuadro de selección en el segundo cuadro de selección. Sin embargo, si trato de usar el valor real del formulario, obtengo un
Aviso: índice indefinido: mi_grupo
Aquí está el código para el cuadro desplegable que quiero mostrar basado en un cuadro de selección de grupo:
$builder->add(''subscriptiontype'', ''entity'',
array(
''label'' => ''profile.edit.my_subscription_type'',
''translation_domain'' => ''FOSUserBundle'',
''empty_value'' => ''Select subscription type'',
''property'' => ''subscription_title'',
''class'' => ''SDMarketplaceBundle:SubscriptionType'',
''multiple'' => false,
''attr'' => array(''onchange'' => '''', ''class'' => ''''),
''query_builder'' => function($repository) use ($options){
return $repository
->createQueryBuilder(''j'')
->where(''j.isActive = :active AND j.valid_until > :timenow AND j.group = :group_id'')
->setParameter(''active'', 1)
->setParameter(''timenow'', new /DateTime(''now''))
->setParameter(''group_id'', $options[''my_group''])
->orderBy(''j.subscription_title'', ''ASC'');
}
)
);
Si cambio $ options [''my_group''] a un número real que es la identificación del grupo, se muestra correctamente. Aquí está el resultado del código html cuando en realidad pongo un id en lugar de $ options [''my_group''] :
<select id="fos_user_profile_form_my_group" name="fos_user_profile_form[my_group]" required="required"><option value="">Select group</option><option value="5">administrator</option><option value="2" selected="selected">instructor</option><option value="3">proofreader</option><option value="1">student</option><option value="4">translator</option></select>
¿Alguna ayuda sobre lo que estoy haciendo incorrectamente o me falta?
---- Disculpas por mi respuesta extremadamente tardía ya que no vi tu publicación (pero gracias.) Aquí está mi código de controlador para el showAction:
public function showAction()
{
$user = $this->container->get(''security.context'')->getToken()->getUser();
if (!is_object($user) || !$user instanceof UserInterface) {
throw new AccessDeniedException(''This user does not have access to this section.'');
}
$myGroup = $this->getEntityManager()->getRepository(''SDMarketplaceBundle:Groups'')->findOneBy(array(''id'' => $user->getMyGroup())); //retrieve the group selected by this user
$subscriptiontype = $this->getEntityManager()->getRepository(''SDMarketplaceBundle:Subscriptiontype'')->findOneBy(array(''id'' => $user->getSubscriptiontype())); //retrieve the subscription type title for this user
$accounttype = $this->getEntityManager()->getRepository(''SDMarketplaceBundle:AccountType'')->findOneBy(array(''id'' => $user->getMyAccountType())); //retrieve the account type name for this user
return $this->container->get(''templating'')->renderResponse(''FOSUserBundle:Profile:show.html.''.$this->container->getParameter(''fos_user.template.engine''),
array(
''user'' => $user,
''myGroup'' => $myGroup,
''subscriptiontype'' => $subscriptiontype->getSubscriptionTitle(),
''accounttype'' => $accounttype->getAccountName(),
''statusCode'' => $user->getStatusName($user->getStatusCode())
));
}