Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Kalsing

radiobox com for

Recommended Posts

Não sei se vou conseguir ser claro na minha dúvida, mas vamos lá:

 

Estou fazendo um esquema de cadastro de notícias. Haverá a possibilidade da notícia, ser uma notícia destaque.

Quando cadastro uma noticia, ela vai por padrão com o campo de destaque no BD, como não sendo destaque ('N').

 

Então há uma lista de notícias destaques, que quando a notícia for destaque, aparecerá com o radio marcado, e quando não for, consequentemente não estará marcado.

 

pra isso, fiz um if

<? if($row_rs_noticias['destaque'] == 'S'){ ?>
      <input type="radio" name="destaque" value="<?=$row_rs_noticias['id']?>" checked />	
<? } else { ?>
      <input type="radio" name="destaque" value="<?=$row_rs_noticias['id']?>" />	
<? } ?>

Porém, o que acontece:

quero que quando eu marque outra notícia para ser destaque, a quem vem do banco marcada, não desmarca.

 

Como faço para deixar sempre só uma selecionada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<? if($row_rs_noticias['destaque'] == 'S' AND !isset($unica_noticia)){ ?>
      <input type="radio" name="destaque" value="<?=$row_rs_noticias['id']?>" checked />        
<? } 
$unica_noticia = '';
else { ?>
      <input type="radio" name="destaque" value="<?=$row_rs_noticias['id']?>" />        
<? } ?>

Ele só vai cair no if uma vez, pois quando cair será criada a variável $unica_noticia, a partir daí o !isset forçará a cair no else.

 

Mas ao meu ver, seria melhor você sempre que cadastrar uma notícia como destaque, no momento imediantament anterior, retirar o destaque das demais (assumindo que só possa existir uma notícia destaque por vez).

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei o código exatamente como tu escrever, porém deu essa msg

 

"Parse error: syntax error, unexpected T_ELSE"

 

não tá errada a colocação dessa varíavel $unica_noticia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim está...

 

<? if($row_rs_noticias['destaque'] == 'S' AND !isset($unica_noticia)){ ?>
      <input type="radio" name="destaque" value="<?=$row_rs_noticias['id']?>" checked />        
<? 
$unica_noticia = '';
} else { ?>
      <input type="radio" name="destaque" value="<?=$row_rs_noticias['id']?>" />        
<? } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é apenas uma noticia que pode ser destaque, o ideal é criar uma rotina anterior a esta. Sempre que for salvar uma notícia de destaque, seja inserindo ou atualizando, primeiro atualiza todos os registros desta forma:

UPDATE noticias SET destaque = 'N';

 

E então:

UPDATE noticias SET destaque = 'S' WHERE id = $id;

ou:

INSER INTO noticias (autor, texto, ...) VALUES ($autor, $texto, $...);;

 

Isto vai evitar ter mais de uma noticia em destaque.

Pode criar uma TRIGGER no banco para facilitar a vida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apresenta o mesmo erro?

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.