Ir para conteúdo

POWERED BY:

Arquivado

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

Pedrohk

Categorias Radio Button

Recommended Posts

Bom, estou criando uma página de cadasto de notícias. No meu banco uma tabela de categorias. Elas já estão cadastradas lá. Porém na hora que a pessoa for inserir a notícia eu gostaria que ela, no HTML, mostrasse as categorias que estão no banco num Radio Button.

 

Porém como iria ficar no HTML? Teria que fazer uma por uma ou um código PHP para exibir somente as que tão no banco? E a minha tabela notícia deve ter uma FK de categorias ou não precisa?

 

Abraços e agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solução melhor ao invés de radio button, pode ser o select, veja:

 

<form>
<select name="categoria">
   	<?php
		$sql   = "SELECT * FROM `tbl_categorias` ORDER BY `id` DESC";
		$query = mysql_query($sql) or die("MYSQL: ".mysql_error());
		$rows  = mysql_num_rows($query);
		if ($rows == 0) {
	?>
       <option value="">Nenhum registro encontrado</option>
       <?php
		}else{
			while ($result = mysql_fetch_array($query)) {
				extract($result);
	?>
       <option value="<?=$id?>"><?=$titulo?></option>
       <?php
			}
		}
	?>
   </select>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso eu fiz de exemplo, você vai implementar em seu formulário, vai trocar o nome da tabela, e dos campos

 

Isto eu fiz. Porém vou lhe mostrar como ficou, ele desabilitou até o mesmo metade do CSS da página.

 

printdd.png

 

Mudei os nomes das tabelas e variaveis, mesmo assim não puxou nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, a tabela já tem dados inseridos. Cadastrar categorias e exclui-las funciona perfeitamente. Só esse listar... Mostrarei a página.

 

Está é a cadastroNoticia.php

 

<form id="cadastro" method="post" name="cadastro" action="../controle/NoticiaControle.php?operacao=inserir">          

        <fieldset>

              <legend> Dados da Notícia </legend> <br />

                       <label> Título <br />
                                <input type="text" name="txttitulo" id="txttitulo" value="<?php if (isset($_SESSION['s_post'])) echo $_SESSION['s_post']['txttitulo']; ?>" />
                        </label>

                        <br />
                        <br />
                        <select name="categoria">
								  <?php
									$sql = "select * from categorias order by id desc";
									$query = mysql_query($sql) or die("MYSQL: ".mysql_error());
									$rows  = mysql_num_rows($query);
									if ($rows == 0) {
?>
        <option value="" selected="selected">Nenhum registro encontrado</option>
        <?php
             }else{
                 while ($result = mysql_fetch_array($query)) {
	  extract($result);
        ?>
        <option value="<?=$id?>"><?=$nome?></option>
        <?php
            }
        }
        ?>
        </select>

<textarea name="txttxt"><?php if (isset($_SESSION['s_post'])) echo $_SESSION['s_post']['txttxt'];?></textarea>
                                   	<script type="text/javascript">
										CKEDITOR.replace( 'txttxt' );
									</script>

                                   <br />
                                   <br />

                                   <input type="submit" name="button" id="button" value="Enviar" />
                           </fieldset>

                           <br />
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho Skype não. :/

 

Ainda não obtive sucesso com esse script.

Tem alguma maneira mais fácil de fazer que não seja com select?

Pode até ser Radio Button, mas preciso puxar essas categorias do banco, realmente só falta isso para eu terminar o site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara se esta puxando o select do banco caso não eu tenho esse arquivo que você no meu pc mais ele ta zuado e não ta ligando mais aqui mesmo no imasters tem o arquivo vo ver se acho e coloco aqui pra você se algum adm achar meu outro post resolvido sobre isso mesmo pode colocar o link prs ele

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara se esta puxando o select do banco caso não eu tenho esse arquivo que você no meu pc mais ele ta zuado e não ta ligando mais aqui mesmo no imasters tem o arquivo vo ver se acho e coloco aqui pra você se algum adm achar meu outro post resolvido sobre isso mesmo pode colocar o link prs ele

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pedrohk, está vendo onde tem:

<option value="<?=$id?>"><?=$nome?></option>

 

Talvez o erro esteja no noma da variável $nome, verifique na tabela se o nome está correto, e posta aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome ali está correto, é $nome mesmo.

Vou postar aqui um que eu estou tentando.

 

<?php
require '../classes/Conexao.class.php';

$query = mysql_query("SELECT id,nome FROM categorias");

?>
<select>
<option>Selecione...</option>

<?php while($cat = mysql_fetch_array($query)) { ?>
<option value="<?php echo $cat['id'] ?>"><?php echo $cat['nome'] ?></option>
<?php } ?>

</select>

 

Arrumou o CSS, apareceu o Selecione... porém não mostra nada.

Ele, estranhamente, não tá puxando do banco. DD:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola eu consegui achar não sei se isso que você pricisa mais tente testalo eu usei ele para colocaar e retirar meu site de estado de manutenção agora e so você trocar os nomes lembrando

 

<option value="ISSO E OQ VAI SER INSERIDO">ISSO SO OQ APARECE NA PAGINA</option> 
<select name="ISSO E O QUE APARECERA AQUI">
$site = $_POST['AQUI OLHA'];

 

<?phprequire '../classes/Conexao.class.php';
$query = mysql_query("SELECT id,nome FROM categorias");
?>
<?php while($cat = mysql_fetch_array($query)) { ?>
<form action="" method="post" enctype="multipart/form-data">
<label>                
<span>Colocar site em manutenção:</span><br />
<select name="site">                
<option value="<?php echo $cat['id'] ?>">php echo $cat['nome'] ?></option>                          
</select>        
</label>  
<?php } ?>
<br /><br />       
<input type="hidden" name="acao" value="enviar" />      
 <input type="submit" value="Alterar estado do site" class="btn"/>
</form>
<?php 
   if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){     
  $site = $_POST['site'];        
      if(empty($site)){            
   echo '<script>alert("Preencha o campo");</script>';    
   }else{         
      $cadastra = mysql_query("INSERT INTO AVERIGUAR (manutencao) VALUES ('$site')");
               echo '<script>alert("Foi alterado com sucesso o estado do site!");</script>';       
   }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque

$query = mysql_query("SELECT id,nome FROM categorias");

 

por

$query = mysql_query("SELECT id,nome FROM categorias") or die(mysql_error());

 

olha se ele mostra algum erro, e posta aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa, então esse caminho

 

require '../classes/Conexao.class.php';

 

está errado

corrija o caminho da chamada, você não incluiu direito

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!

 

mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db ('jornal') or die (mysql_error());
$query = mysql_query("SELECT id,nome FROM categorias") or die (mysql_error());

?>
<select>
<option>Selecione...</option>

<?php while($cat = mysql_fetch_array($query)) { ?>
<option value="<?php $cat['id'] ?>"><?php echo $cat['nome'] ?></option>
<?php } ?>

</select>

 

Tá puxando normal agora, só não entendi porque que eu estava usando a class "conexao.php" e ele não estava puxando a conexão com o banco? Sendo que a classe possui as mesmas informações?

 

Obrigado pela ajuda!

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.