Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ariane Stela

[Resolvido] Atributo Readonly para formSelect

Recommended Posts

Estou tentando desabilitar a mudança de opção para um grupo de pessoas em um formulário, porém quando eu utilizo o atributo "disable" ele não envia o valor no submit, e eu preciso desse valor.

Este grupo de pessoas só pode utilizar a opção 1, ou na hora de editar a opção selecionada.

O readonly está permitindo que seja mudada a opção

 

// Verifica se o pagamento já foi selecionado
		if($this->ordem):
			$pagamento = $this->ordem['tipo_pagamento'];
		else:
			$pagamento = isset($_POST['tipo_pagamento']) ? $_POST['tipo_pagamento'] : 0;
		endif;

echo $this->formSelect('tipo_pagamento', $pagamento, array('id' => 'tipo_pagamento', 'readonly'=>'readonly', 'style' => 'width: 100px;'), $this->pagamento);

Alguém me ajuda?

obrigada

beijo

 

edit: erro que mostra "line 137 column 28 - Aviso: <select> proprietary attribute "readonly""

Compartilhar este post


Link para o post
Compartilhar em outros sites

tive que fazer algo semelhante. resolvi populando de forma diferente o select para cada tipo de usuário.

 

você pode popular o select dinamicamente de acordo com o usuário ou setar um value fixo no onsubmit qndo for para fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tive que fazer algo semelhante. resolvi populando de forma diferente o select para cada tipo de usuário.

 

você pode popular o select dinamicamente de acordo com o usuário ou setar um value fixo no onsubmit qndo for para fazer.

 

eu tentei fazer assim, mas quando o usuario sem permissão para setar certos valores, como mudar para "pago" uma nota, edita uma nota que já esta paga, o valor não aparece como "pago" e sim como o que eu defini que ele poderia enchergar

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema na verdade não é do zend framework. O elemento <select> não tem a opção de readonly. Somente disabled. Então, neste caso, o que se deve fazer é criar um elemento do tipo input type="text" com o valor que não pode ser modificado e aplicar o readonly. Eu tive este mesmo problema a mais de 1 ano.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema na verdade não é do zend framework. O elemento <select> não tem a opção de readonly. Somente disabled. Então, neste caso, o que se deve fazer é criar um elemento do tipo input type="text" com o valor que não pode ser modificado e aplicar o readonly. Eu tive este mesmo problema a mais de 1 ano.

 

Carlos Eduardo

 

interessante.

Obrigada,

beijo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

calma, não coloque resolvido ainda, deu problema aqui.

 

<?php if($this->menu['ordemservico']['actions']['pagamento'] == true):
	    echo $this->formSelect('tipo_pagamento', $pagamento, array('id' => 'tipo_pagamento', 'style' => 'width: 100px;'), $this->pagamento);
else: ?>
   <input readonly="true" type="text" size="9" id="tipo_pagamento" name="tipo_pagamento" value="<?php echo $this->pagamento[$pagamento]; ?>" />
<?php endif;?>

isso faz o seguinte, se o usuario ter permição na ACL para mudar o pagamento, então mostra o "select", se ele não tem mostra o "input"

isso funcionou certinho e está trazendo os valores corretos, porém na hora de recuperar o primeiro pega o valor certinho q é um inteiro, no caso "2" por exemplo e no input ele traz o valor "pago".

como faço para o input me retornar o valor apenas da variavel $pagamento????

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou uma baguncinha, mas inseriu certinho

 

<?php if($this->menu['ordemservico']['actions']['pagamento'] == true):
   echo $this->formSelect('tipo_pagamento', $pagamento, array('id' => 'tipo_pagamento', 'style' => 'width: 100px;'), $this->pagamento);
else: ?>
   <input readonly="true" type="text" size="9" id="tipo_pagamento_fake" name="tipo_pagamento_fake" value="<?php echo $this->pagamento[$pagamento]; ?>" />
   <input type="hidden" name="tipo_pagamento" id="tipo_pagamento" value="<?=$pagamento?>">
<?php endif;?></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.