Ir para conteúdo

POWERED BY:

Arquivado

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

augustuz

[Resolvido] Retornar palavra composta do select e option

Recommended Posts

Bom pessoal não sei se estou postando no lugar certo, pois é a primeira vez q posto em um fórum.

Minha dúvida é a seguinte:

 

Tenho um select que busca informações em uma tabela no banco(mysql) e mostra no listbox, até aí tudo bem, apesar de ser palavras compostas, está mostrando certinho, porém quando pego o item selecionado e tento enviar para outra tabela no banco ele envia somente a primeira palavra e não a palavra composta inteira.

 

parte do código:

<?
		require("config/conexao.php");
		$combo = mysql_query("SELECT * FROM unidades ORDER BY nome ASC");

		// faz o loop pelos dados, e joga em um array
		while($linha = @mysql_fetch_array($combo)){
        	// atribui o array a uma variavel($mostra)
        	$mostra = $linha['nome'];
        	// imprime na tela as opções resgatadas do banco de dados
        	echo "<option value=$mostra>$mostra</option>";
}
?>
		 </select></label>

 

 

parte que pega os dados e faz verificação:

 

<?php
   if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
     $nome  = (!get_magic_quotes_gpc()) ? addslashes($_POST['nome']) : $_POST['nome'];
        $unidade = (!get_magic_quotes_gpc()) ? addslashes($_POST["unidade"]) : $_POST["unidade"];
        $usuario  = (!get_magic_quotes_gpc()) ? addslashes($_POST['usuario']) : $_POST['usuario'];
        $senha = (!get_magic_quotes_gpc()) ? addslashes($_POST['senha']) : $_POST['senha'];

    if(empty($nome)){
           echo '<script>alert("Preencha o campo Nome")</script>';
           echo '<script>history.back()</script>';
           exit;  
		}
 if(empty($usuario)){
           echo '<script>alert("Preencha o campo Usuario")</script>';
           echo '<script>history.back()</script>';
           exit;
 }
if (empty($senha)){
           echo '<script>alert("Preencha o campo Senha")</script>';
           echo '<script>history.back()</script>';
           exit;
 }
 $senha = md5($senha);
 require("config/conexao.php");

$Busca = mysql_query("SELECT * FROM usuarios WHERE usuario ='$usuario'");

if(mysql_num_rows($Busca) == 0){

 $sql = "INSERT INTO usuarios (nome, unidade, usuario,senha)VALUES('$nome', '$unidade', '$usuario','$senha')";
        $qr  = mysql_query($sql) or die(mysql_error());

           if($qr):
              echo '<script>alert("Cadastrado com sucesso!")</script>';
           else:
              echo '<script>alert("Erro ao cadastrar")</script>';
           endif;
     	}else echo '<script>alert("Usuario ja cadastrado no sistema!")</script>';

     }
  require("menu.php");

     session_start();
     if(isset($_GET['acao']) && $_GET['acao'] == 'sair'):
           unset($_SESSION['usuario']);
           unset($_SESSION['senha']);
           session_destroy();
     endif;

        if(!isset($_SESSION['usuario']) && !isset($_SESSION['senha'])):
        header("location:../index.php");
     endif;
?>

 

Se alguém puder me ajudar.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque essa linha:

echo "<option value=$mostra>$mostra</option>";

Por essa:

echo "<option value='$mostra'>$mostra</option>";

Por que?

 

value=diego arent
é diferente de

value='diego arent'

Se o value é texto, deve ficar entre aspas, caso contrário ele só interpreta o que tem antes do espaço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por reeditar hargon!

Pessoal, tenho mais uma dúvida:

 

Na mesma tabela unidade eu tenho um campo tipo(int) como eu faço pra pegar o valor do tipo do item selecionado(unidade) e enviar para o banco utilizando o mesmo loop deste select? tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No value, coloque o código e dentro da tag o texto:

 

<option value="1">Diego Arent</option>

No caso... dentro do loop...

 

Você troca

echo "<option value=$mostra>$mostra</option>";

Por

echo "<option value='$linha['codigo']'>$linha['nome']</option>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eh o seu formulario ?

nao entendi oque você quer dizer com 'o mesmo loop deste select?'..

 

Como esta o select?

<select name="talCoisa">
você ira receber um

$_POST['talCoisa'], com o valor selecionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William aí está meu formulário:

<?php
    if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
	     $nome  = (!get_magic_quotes_gpc()) ? addslashes($_POST['nome']) : $_POST['nome'];
         $unidade = (!get_magic_quotes_gpc()) ? addslashes($_POST["unidade"]) : $_POST["unidade"];
         $usuario  = (!get_magic_quotes_gpc()) ? addslashes($_POST['usuario']) : $_POST['usuario'];
         $senha = (!get_magic_quotes_gpc()) ? addslashes($_POST['senha']) : $_POST['senha'];
		 $tipo = (!get_magic_quotes_gpc()) ? addslashes($_POST['tipo']) : $_POST['tipo'];
		         
     if(empty($nome)){
            echo '<script>alert("Preencha o campo Nome")</script>';
            echo '<script>history.back()</script>';
            exit;  
			}
	 if(empty($usuario)){
            echo '<script>alert("Preencha o campo Usuario")</script>';
            echo '<script>history.back()</script>';
            exit;
	 }
	if (empty($senha)){
            echo '<script>alert("Preencha o campo Senha")</script>';
            echo '<script>history.back()</script>';
            exit;
	 }
	 $senha = md5($senha);
	 require("config/conexao.php");
	 
	$Busca = mysql_query("SELECT * FROM usuarios WHERE usuario ='$usuario'");
	
	if(mysql_num_rows($Busca) == 0){
	
	 $sql = "INSERT INTO usuarios (nome, unidade, usuario, senha, tipo)VALUES('$nome', '$unidade', '$usuario','$senha', '$tipo')";
         $qr  = mysql_query($sql) or die(mysql_error());
         
            if($qr):
               echo '<script>alert("Cadastrado com sucesso!")</script>';
            else:
               echo '<script>alert("Erro ao cadastrar")</script>';
            endif;
      	}else echo '<script>alert("Usuario ja cadastrado no sistema!")</script>';
      
      }
	  require("menu.php");

      session_start();
      if(isset($_GET['acao']) && $_GET['acao'] == 'sair'):
            unset($_SESSION['usuario']);
            unset($_SESSION['senha']);
            session_destroy();
      endif;
      
         if(!isset($_SESSION['usuario']) && !isset($_SESSION['senha'])):
         header("location:../index.php");
      endif;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="shortcut icon" href="icon/favicon.ico">
<title>Cadastro de Revistas/Blitz</title>
</head>
<link rel="stylesheet" type="text/css" href="css/estilo.css"/>
<body>

<form method="post" action="">
<div id="boxes">
     <div class="fixo">
	<div class="titulo">
	  <h6>Cadastro de Usuários</h6>
	</div>
	<div class="conteudo">
    		<label><span>Nome</span><input name="nome" type="text" size="30" onfocus="this.className='muda'" onblur="this.className=''"/></label>
		<label><span>Unidade</span><select name="unidade" id ="unidade" onfocus="this.className='muda'" onblur="this.className=''">
<?
	        require("config/conexao.php");
		$combo = mysql_query("SELECT * FROM unidades ORDER BY nome ASC");

		// faz o loop pelos dados, e joga em um array
		while($linha = @mysql_fetch_array($combo)){
         	// atribui o array a uma variavel($mostra)
         	$mostra = $linha['nome'];
		// imprime na tela as opções resgatadas do banco de dados
         	//echo "<option value='$mostra'>$mostra</option>";
		"<option value='$mostra'>$mostra</option>";
}
?></select></label>
             
            <label><span>Usuário</span><input name="usuario" type="text" size="30" onfocus="this.className='muda'" onblur="this.className=''"/></label>
            <label><span>Senha</span><input name="senha" type="password" size="30" onfocus="this.className='muda'" onblur="this.className=''""/></label>
            <input type="hidden" name="acao"  value="cadastrar"/>
            <input type="submit" class="btn" value="Cadastrar "/>	
        </div>
      <div>
</div>
</form>
</body>
</html>

porém além de enviar para o banco o nome da unidade, gostaria de enviar o tipo(int) de unidade que se encontra na mesma tabela, porém gostaria de fazer isso utilizando o mesmo while que uso para pegar o nome da unidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não resolveu ?

 

No value, coloque o código e dentro da tag o texto:

 

<option value="1">Diego Arent</option>

No caso... dentro do loop...

 

Você troca

echo "<option value=$mostra>$mostra</option>";

Por

echo "<option value='$linha['codigo']'>$linha['nome']</option>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não porque quando eu pego o value do option ele me envia o tipo(int) que é um número

$unidade = (!get_magic_quotes_gpc()) ? addslashes($_POST["unidade"]) : $_POST["unidade"];

e além de eu pegar o tipo, também quero pegar o nome da unidade. Na realidade eu queria criar outra variável desta maneira:

$tipo = (!get_magic_quotes_gpc()) ? addslashes($_POST["?"]) : $_POST["?"];

que receberia o valor do tipo da unidade utilizando o mesmo while.

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.