Ir para conteúdo

POWERED BY:

Arquivado

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

Marlon Souza

radio button dentro de while (section) em smarty

Recommended Posts

Amigos do imaster estou com uma duvida, preciso colocar um radio buttom em um while e fazer com que quando seleciona um radio o outro desative, so que ja possui um formulario nessa pagina, eu criei outro form fora do form principal e agora preciso fazer com que seja escolhido somente um dos radio buttom, alguem sabe como resolver?

 

Segue trecho do codigo, estou usando smarty

 

{section name=p loop=$ID_IMG} //equivale ao while
			<table border=0 width="98%" >
	  <tr>
		<td width="409" height="325">
		<img src="/cliente/images/dinamicas/gera_thumb.php?img={$NOME_IMG[p]}&w=400&h=300">
		</td>
		<td valign="top">
		<table width="98%" border="0" >	
		   <tr>
			   <td >
				Titulo da Imagem: {$LEGENDA_IMG[p]} 
			 </td>
			  </tr>   
			   <tr>
			   <td>	
					<form action="aprovar_layout.php?obs=ok" method="post" enctype="multipart/form-data" name="form{$ID_IMG[p]}">
					<textarea rows="5" cols="50" name="OBS">{$OBS}</textarea><br>
					<input type="hidden" name="ID_IMG" value="{$ID_IMG[p]}"> 
					<input type="hidden" name="validar" value="validar"> 
					<input type="submit" name="submit" value="Salvar Observações">
					</form>
			   </td>
			  </tr>
				 <tr>
			   <td>
				<div style="width:300px;height:155px; overflow:auto; padding-top:10px; background-color:#F0F0F0" id="{$ID_IMG[p]}">
					{$OBS_ITE[p]}
				</div>
			   </td>
			  </tr>	
		</table>
		</td>
	</tr> 
	<tr>
		<td colspan="2" height="25"> 
		<form action="aprovar_layout.php?aprovado={$ID_IMG[p]}" method="post" enctype="multipart/form-data" name="form_aprovado">
			{if $STATUS_APROVADO[p]}
			Aprovado
			{/if}
			{if !$STATUS_APROVADO[p]}
		 
		   
			{if $TIPO_ITE[p] eq "1"} 
				<input type="radio" name="aprovarradio" id="aprovarradio" value="{$ID_IMG[p]}">   // MEU RADIO AQUI
			{/if}
			{if $TIPO_ITE[p] eq "2"} 
				<input type="checkbox" name="aprovarcheck"  value="{$ID_IMG[p]}">
			{/if}
		Aprovar este layout <input type="submit" name="submit" value="Aprovar">
		  {/if}
		 </form>
		</td>
	</tr>
	<tr>
		<td colspan="2" height="25"><hr>
		</td>
	</tr>   
	{/section}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi direito, o que você quer é um grupo de radio button em que só se seleciona 1. Se for, segue código

<input type="radio" name="campo" id="campo" value="Valor 1" />Valor 1
<input type="radio" name="campo" id="campo" value="Valor 2" />Valor 2
<input type="radio" name="campo" id="campo" value="Valor 3" />Valor 3
<input type="radio" name="campo" id="campo" value="Valor 4" />Valor 4

Espero que seja isto

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renato e Carlos, o form tem o mesmo nome e o input radio tbm

 

[...]
 <form action="aprovar_layout.php?aprovado={$ID_IMG[p]}" method="post" enctype="multipart/form-data" name="form_aprovado">
[...]
  <input type="radio" name="aprovarradio" id="aprovarradio" value="{$ID_IMG[p]}">   // MEU RADIO AQUI
[...]

so que como tem o while é possivel fazer a "des-selecao" do outro radio quando selecionar um?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renato e Matias, o form tem o mesmo nome e o input radio tbm

 

[...]
 <form action="aprovar_layout.php?aprovado={$ID_IMG[p]}" method="post" enctype="multipart/form-data" name="form_aprovado">
[...]
  <input type="radio" name="aprovarradio" id="aprovarradio" value="{$ID_IMG[p]}">   // MEU RADIO AQUI
[...]

Então, ali você tem só um radio. Coloca o(s) outro(s) com o mesmo nome e pronto, só trocando o valor que vai ser enviado. Ex.:

[...]
 <form action="aprovar_layout.php?aprovado={$ID_IMG[p]}" method="post" enctype="multipart/form-data" name="form_aprovado">
[...]
  <input type="radio" name="aprovarradio" id="aprovarradio" value="{$ID_IMG[p]}">   // MEU RADIO AQUI
  <input type="radio" name="aprovarradio" id="aprovarradio" value="{$ID_IMG[q]}">   // MEU RADIO AQUI
  <input type="radio" name="aprovarradio" id="aprovarradio" value="{$ID_IMG[r]}">   // MEU RADIO AQUI
  <input type="radio" name="aprovarradio" id="aprovarradio" value="{$ID_IMG[s]}">   // MEU RADIO AQUI
[...]

Acho que é isto

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renato, sim ta no ar, mais como tem acesso restrito, é um cms da empresa onde trabalho, essa area vai ser pra selecionar uma imagem e aprova-la, entao eu preciso mostrar todas as imagens, os dados e o radio pra selecionar qual vai ser escolhida

 

carlos eu mostrei que to usando o section, que no smarty é semelhate ao while, ou seja vai fazer o loop e mostrar tudo repetindo do jeito correto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fica assim então

<input type="radio" name="{$ID_IMG[p]}" id="{$ID_IMG[p]}" value="Aprovado"> Aprovado  // MEU RADIO AQUI
  <input type="radio" name="{$ID_IMG[p]}" id="{$ID_IMG[p]}" value="Não aprovado">  Não aprovado // MEU RADIO AQUI

Se não entender avisa. Qualquer coisa, matias_rezende@hotmail.com

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos nao é isso, vou explicar melhor.

 

Primeiro voce ja trabalhou com smarty?

O <section> faz com que meu codigo se repita quantas vezes forem solicitados pelo array.

No meu codigo tem um <section> no inicio e no final do codigo, ou seja, meu codigo vai se repetir e quero que quando seleciona um radio, ele desabilite o outro. Dentro do meu <section> eu tenho um form que comeca na linha 16 e termina na linha 21, continuo executando meu codigo e nas linhas 36 a 51 eu tenho outro form, este chamando os dados para o radio buttom.

 

Tem como fazer com que quando selecione um radio o outro deselecione nesse caso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos, sim é semelhante mais voce reparou que o que voce fez estaq tudo dentro de um form so, e no meu caso eu tenho 2 forms, ate ai tudo bem, so que eu nao abro meu form fora do while e sim dentro, é isso que eu quero saber, se quando tem o radio em forms que sao abertos dentro de um laco de repeticao ele funcionara quando selecionar somente um botao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marlon, não entendi o motivo de multiplicar o <form>

 

existe um motivo específico ?

 

não bastaria colocar as tags <form> </form> fora do laço ?

 

tipo

<form>
<input type=hidden>
...
..
[section do smarty]
  .. bla bla 
  <input type=radio ...>
[fim do section]
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

já pensou em usar http://smarty.net/manual/pt_BR/language.fu...html.radios.php

se tu fazendo manualmente e mandar marcar todos ele vai marcar todos mesmo tendo o mesmo nome, afinal você esta colocando o código errado, então ou você usa a função html_radios do smarty ou faz um if em cada radio para determinar se ele vai ser marcado ou não o que pelo que vi você não faz.

Mas explica certinho o que você quer para ver se da pra te ajudar, eu trabalho com smarty a bastante tempo, já fiz até uma loja virtual com ele.

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.