admendes 0 Denunciar post Postado Janeiro 29, 2010 Pessoal, Bom dia, estou com um probleminha e creio que é simples mas, não estou em atentando: quero pegar o valor do <option></option> e inserir no banco de dados, o problema é que ele pega o outro campo(INPUT text) mas, não pega o valor do option Segue o codigo: <select name="nome_cliente" id="nome_cliente"> <option value="">Selecione um Cliente</option>; <? $cliente = new cliente(); $cliente->setid_cliente($_POST['id_cliente']); $cliente->setnome_cliente($_POST['nome_cliente']); $cli = $cliente->listagem(); while($dados = mysql_fetch_array($cli)){ echo("<option value=".$dados['id_cliente'].">".$dados['nome_cliente']."</option>"); } ?> </select> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 29, 2010 você tem outro input,select,textarea com o mesmo name ? se você fizer: echo $_POST['nome_cliente']; a saída será o value do option selecionado. Compartilhar este post Link para o post Compartilhar em outros sites
admendes 0 Denunciar post Postado Janeiro 29, 2010 Não só tenho um input com outro nome Essa lista de clientes vem de outra tabela agora quero vincular o cliente a um empreendimento Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 29, 2010 Não tem nenhum erro aparente nessa parte. Poste o resto do script. Compartilhar este post Link para o post Compartilhar em outros sites
admendes 0 Denunciar post Postado Janeiro 29, 2010 O codigo todo: No caso, tenho que inserir no banco o nome do empreendimento e o nome do cliente. <html> <head> <title>Cadastro de Etapas do Empreendimento</title> <link rel="stylesheet" href="css/estilos.cad.empreend.css" media="all"> <script type="text/javascript" language="javascript" src="js/jQuery/jquery.js"></script> <script type="text/javascript" language="javascript"> $(document).ready(function(){ $('div').show(1500); }); </script> <style type="text/css" media="all"></style> </head> <body> <form method="post" action="instancia.etapaempreendimento.php?acao=cadastrar" id="cadastro_etapaempreendimento" name="cadastro_etapaempreendimento"> <div> <fieldset id="conteudo"> <legend>Cadastro de Etapas do Empreendimento</legend> <input type="hidden" id="id_etapaempreendimento" name="id_etapaempreendimento" value="<?echo $dados[id_etapaempreendimento]?>" /></p> <p>Descrição das Etapas:<br /></p><input type="text" id="nome_etapaempreendimento" name="nome_etapaempreendimento" value="<?echo $dados[nome_etapaempreendimento]?>"> <p>Cliente:</p> <select name="nome_cliente" id="nome_cliente" value="<?echo $dados[nome_cliente]?>"> <option value="<?echo $dados[nome_cliente]?>">Selecione um Cliente</option>; <? $cliente = new cliente(); $cliente->setid_cliente($_POST['id_cliente']); $cliente->setnome_cliente($_POST['nome_cliente']); $cli = $cliente->listagem(); while($dados = mysql_fetch_array($cli)){ echo("<option value=".$dados['id_cliente'].">".$dados['nome_cliente']."</option>"); } echo $_POST['nome_cliente']; ?> </select> <button type="submit">Cadastrar</button> </fieldset> </div> </form> </body> </html> Esse é o INSERT: public function cadastraEtapaEmpreendimento(){ $this->cadastra = "INSERT INTO sms_etapaempreendimento(nome_etapaempreendimento,nome_cliente) VALUES ('$this->nome_etapaempreendimento','$this->nome_cliente')"; die($this->cadastra); if($this->cadastra){ echo "Etapa de Empreendimento Cadastrada com sucesso"; return mysql_query($this->cadastra); }else{ echo "Erro ao cadastrar Etapa de Empreendimento"; } } Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 29, 2010 Qual arquivo é o: instancia.etapaempreendimento.php ? Qnto ao select, deixe apenas: <select name="nome_cliente"> <option value="--">Selecione um Cliente</option> <?php $cliente = new cliente(); $cli = $cliente->listagem(); while($dados = mysql_fetch_array($cli)) { echo '<option value="'.$dados['id_cliente'].'">'.$dados['nome_cliente'].'</option>'; } ?> </select> Compartilhar este post Link para o post Compartilhar em outros sites
admendes 0 Denunciar post Postado Janeiro 29, 2010 Esse aqui: Ele não tem vinculo com a instancia deveria ter? <? include("class/conexao.php"); include("class/etapaEmp.class.php"); $eta = new EtapaEmpreendimento(); $eta->setid_etapaempreendimento ($_POST['id_etapaempreendimento']); $eta->setnome_etapaempreendimento($_POST['nome_etapaempreendimento']); if($_POST['id_etapaempreendimento']=="" && $_GET['acao']=="cadastrar"){ $eta->cadastraEtapaEmpreendimento(); } if($_POST['id_etapaempreendimento']!=""){ $eta->atualizaEtapaEmpreendimento(); } /*******************************************************************************/ if(isset($_POST['checkid_etapaempreendimento']) && $_GET['acao']=="delete"){ if(mysql_affected_rows()==true){ echo "Dados Excluidos com sucesso "; header('location:lista.etapaempreendimento.php'); } else{ echo "erro na exclusão"; } $eta->deletaEtapaEmpreendimento(); } /*******************************************************************************/ ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 29, 2010 Cara, 'muito confuso'. pra que aquele die? die($this->cadastra); ?? Se esse arquivo que é o action do form: $eta = new EtapaEmpreendimento(); $eta->setid_etapaempreendimento ($_POST['id_etapaempreendimento']); $eta->setnome_etapaempreendimento($_POST['nome_etapaempreendimento']); e você quer cadastrar o id do cliente, pq não tem um setid_cliente ?? Reveja essas classes tão bem estranhas.. Compartilhar este post Link para o post Compartilhar em outros sites
admendes 0 Denunciar post Postado Janeiro 29, 2010 O die(), é apenas pra ver ta pegando o nome do cliente INSERT INTO sms_etapaempreendimento(nome_etapaempreendimento,nome_cliente) VALUES ('Etapa 1789', '') e no caso eu instanciei no cadatra.etapaempreendimento.php, mesmo assim eu tenho que setar o cliente na nesse arquivo e eu to aprendendo ainda cara mesmo assim obrigado pela a juda eu vo arrumar a minha classe. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 29, 2010 tá... então oque você tem que fazer é adicionar ali.. $eta = new EtapaEmpreendimento(); $eta->setid_etapaempreendimento ($_POST['id_etapaempreendimento']); $eta->setnome_etapaempreendimento($_POST['nome_etapaempreendimento']); $eta->setid_cliente($_POST['id_cliente']); e o teu <select> <select name="id_cliente">eu também tô estudando OO ^_^ é que não tava entendendo bem como você tinha feito. Acredito que agora vá resolver. Compartilhar este post Link para o post Compartilhar em outros sites
admendes 0 Denunciar post Postado Janeiro 29, 2010 Bem, eu fiz algo que deu certo mas, não sei se esta correto: inclui a classe cliente.php na isntancia.etapaempreendimento.php setei o cliente e depois coloquei a função dentro da classe etapaempreendimento.php isso é certo pois eu deveria chamar a classe cliente certo. se você não entender eu posto o codigo aqui beleza abraços Compartilhar este post Link para o post Compartilhar em outros sites