augustuz 0 Denunciar post Postado Julho 30, 2009 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
Diego Arent 19 Denunciar post Postado Julho 30, 2009 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
augustuz 0 Denunciar post Postado Julho 30, 2009 Muito Obrigado Diego Arent! Resolveu o meu problema! Simples e objetivo, valeu..... Compartilhar este post Link para o post Compartilhar em outros sites
augustuz 0 Denunciar post Postado Julho 30, 2009 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
Diego Arent 19 Denunciar post Postado Julho 30, 2009 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
William Bruno 1501 Denunciar post Postado Julho 30, 2009 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
augustuz 0 Denunciar post Postado Julho 30, 2009 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
augustuz 0 Denunciar post Postado Julho 30, 2009 Diego Arent, como pegarei o nome da Unidade para enviar para o banco dessa forma? Pois o valor do select unidade será o tipo. Compartilhar este post Link para o post Compartilhar em outros sites
Diego Arent 19 Denunciar post Postado Julho 30, 2009 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
augustuz 0 Denunciar post Postado Julho 30, 2009 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