Jump to content
getece

Combobox com Mysql

Recommended Posts

ini_set('display_errors', true);
error_reporting(E_ALL);

Boa tarde pessoal. Estou criando uma página PHP que puxa o combobox do mysql, e o restante das opções são digitadas pelo usuário. 

Então tenho duas páginas: index.php (com as formatações da pagina) e o conecta.php (com as informações da conexão do banco de dados.

Porém quando eu incluo a parte de verificação de campos vazios e a parte de gravar os dados no banco, todo o meu formulário HTML some, não da para escolher nem as opções do combobox mais.

Segue o código:

<html>
    <head>
        <meta http-equiv="content_Type" content="text/html; charset="UTF-8">
        <title>WebServiços - Agendamento</title>
    </head>
    <body>
        
        <form name="envia" action="conecta.php">
        <h1>WebServiços - Agendamento</h1>
        <th>Serviços:</th> 
        <select name="servicos">
        <?php
        $idServico = $_POST ["idServico"];
        $nomeServico = $_POST["nomeServico"];
        include_once ("conecta.php");
        $sql = "Select * from servico";
        $res = mysql_query($sql) or die ("Erro ao pesquisar os dados." . mysql_error());
        
        while ($registro = mysql_fetch_assoc($res)) {
            $idServico = $registro["idServico"];
            $nomeServico = $registro["nomeServico"];
            $nomePrestador = $registro ["nomePrestador"];
            echo "<option value='$idServico'>$nomeServico - $nomePrestador</option>";
        }
        ?>
        </select><br><br>
    <label for="nome">Nome do Cliente:   </label><input type="text" name="nomeCliente" size="40"><BR><BR>
    <label for="email">E-mail do Cliente: </label><input type="text" name="email" size="40"><BR><BR>
    <label for="telefone">Telefone do Cliente: </label><input type="text" name="telefone" size="38"><BR><BR>
    Dia: <select name="dia" style="width:60px;" >
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
    </select>
   <br><br>Mês: <select name="mes" style="width:60px;">
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
    </select>
   <br><br>Ano: <select name="ano" style="width:60px;">
        <option> 2017 </option>
        <option> 2018 </option>
        <option> 2019 </option>
        <option> 2020 </option>
    </select>
    <br><br>Hora: <select name="hora" style="width:60px;">
        <option> 12 </option>
        <option> 13 </option>
        <option> 14 </option>
        <option> 15 </option>
    </select>
        <br><br><input type="submit" value="Enviar"> 
                <input type="reset" value="limpar">
        </form>
        
      </body>
</html>

 

Código de conexão:

 


<?php
function validarCampos(&$msg, $nomeCliente, $email, $telefone) {
        $resultado = true;
        if (empty($nomeCliente)) {
            $msg = $msg . "Nome invalido.<BR>";
            $resultado = false;
        }
        if (empty($email)) {
            $msg = $msg . "E-mail  invalido. <BR>";
            $resultado = false;
        }
        if (empty($telefone)) {
            $msg = $msg . "telefone invalido.<BR>";
            $resultado = false;
        }

        return $resultado;
    }
        $nomeCliente = $_POST["nomeCliente"];
        $email = $_POST["email"];
        $telefone = $_POST["telefone"];
        
        $msg = "";
        if (validarCampos($msg, $nomeCliente, $email, $telefone)) {
        
 mysql_connect("localhost", "root", "1234") or die ("Não foi possível conectar ao banco de dados." . mysql_error());
    mysql_select_db("etec_servicos") or die ("Não foi possível encontrar o banco de dados." . mysql_error());
    
     $sql = "INSERT INTO agenda ( nomeCliente, email, telefone)
                VALUES ( '$nomeCliente' , '$email' , '$telefone') ";
        mysql_query($sql) or die("ERRO ao inserir dados do PARTICIPANTE. " . mysql_error());
    
        } else {
            echo "Erro. $msg";
        }
    
    ?>

Share this post


Link to post
Share on other sites

Getece,

Boa tarde!

 

Veja se atende suas necessidades:

<html>
    <head>
        <meta http-equiv="content_Type" content="text/html; charset="UTF-8">
        <title>WebServiços - Agendamento</title>
    </head>
    <body>
        
        <form name="envia" action="conecta.php" method="POST">
        <h1>WebServiços - Agendamento</h1>
        <th>Serviços:</th> 
        <select name="servicos">
        <?php
        $idServico = $_POST ["idServico"];
        $nomeServico = $_POST["nomeServico"];
        include_once ("conecta.php");
        $sql = "Select * from servico";
        $res = mysql_query($sql);
        
        while ($registro = mysql_fetch_assoc($res)) {
            $idServico = $registro["idServico"];
            $nomeServico = $registro["nomeServico"];
            $nomePrestador = $registro ["nomePrestador"];
            echo "<option value='$idServico'>$nomeServico - $nomePrestador</option>";
        }
        ?>
        </select><br><br>
    <label for="nome">Nome do Cliente:   </label><input type="text" name="nomeCliente" size="40"><BR><BR>
    <label for="email">E-mail do Cliente: </label><input type="text" name="email" size="40"><BR><BR>
    <label for="telefone">Telefone do Cliente: </label><input type="text" name="telefone" size="38"><BR><BR>
    Dia: <select name="dia" style="width:60px;" >
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
    </select>
   <br><br>Mês: <select name="mes" style="width:60px;">
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
    </select>
   <br><br>Ano: <select name="ano" style="width:60px;">
        <option> 2017 </option>
        <option> 2018 </option>
        <option> 2019 </option>
        <option> 2020 </option>
    </select>
    <br><br>Hora: <select name="hora" style="width:60px;">
        <option> 12 </option>
        <option> 13 </option>
        <option> 14 </option>
        <option> 15 </option>
    </select>
        <br><br><input type="submit" value="Enviar"> 
                <input type="reset" value="limpar">
        </form>
        
		
		<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
		<script>
			$( 'form' ).submit(function(e){
				e.preventDefault();
				if( !$('input[name="nomeCliente"]').val() ){
					alert( 'Nome invalido' );
				}else if( !$('input[name="email"]').val() ){
					alert( 'E-mail  invalido' );
				}else if( !$('input[name="email"]').val() ){
					alert( 'telefone invalido' );
				}else{
					$(this).unbind('submit').submit();
				}
			});
		</script>
		
      </body>
</html>

 

Share this post


Link to post
Share on other sites

Boa tarde Vinapsy, a validação funciona porém o combobox só aparece as opções do banco se o conecta.php ficar da seguinte forma: 

<?php
 mysql_connect("localhost", "root", "1234") or die ("Não foi possível conectar ao banco de dados." . mysql_error());
    mysql_select_db("etec_servicos") or die ("Não foi possível encontrar o banco de dados." . mysql_error());
?>

 

E mesmo assim apresenta erro

Sem título.jpg

Share this post


Link to post
Share on other sites

Pra funcionar com mysqli o seu arquivo conecta.php terá que ficar desta forma:

<?php
function validarCampos($msg, $nomeCliente, $email, $telefone) {
        $resultado = true;
        if (empty($nomeCliente)) {
            $msg = $msg . "Nome invalido.<BR>";
            $resultado = false;
        }
        if (empty($email)) {
            $msg = $msg . "E-mail  invalido. <BR>";
            $resultado = false;
        }
        if (empty($telefone)) {
            $msg = $msg . "telefone invalido.<BR>";
            $resultado = false;
        }

        return $resultado;
    }
        $nomeCliente = $_POST["nomeCliente"];
        $email = $_POST["email"];
        $telefone = $_POST["telefone"];
        
        $msg = "";
        if (validarCampos($msg, $nomeCliente, $email, $telefone)) {
        
	$conexao = mysqli_connect("localhost", "root", "1234", "etec_servicos") or die ("Não foi possível conectar ao banco de dados." . mysqli_error($conexao));
    
     $sql = "INSERT INTO agenda ( nomeCliente, email, telefone)
                VALUES ( '$nomeCliente' , '$email' , '$telefone') ";
        mysqli_query($conexao, $sql) or die("ERRO ao inserir dados do PARTICIPANTE. " . mysqli_error($conexao));
    
        } else {
            echo "Erro. $msg";
        }
    
?>

 

E o seu index.php dessa forma:

<html>
    <head>
        <meta http-equiv="content_Type" content="text/html; charset=UTF-8">
        <title>WebServiços - Agendamento</title>
    </head>
    <body>
        
        <form name="envia" action="conecta.php" method="POST">
        <h1>WebServiços - Agendamento</h1>
        <th>Serviços:</th> 
        <select name="servicos">
        <?php
        $idServico = $_POST ["idServico"];
        $nomeServico = $_POST["nomeServico"];
        include_once ("conecta.php");
        $sql = "Select * from servico";
        $res = mysqli_query($conexao, $sql) or die (mysqli_error($conexao));
        
        while ($registro = mysql_fetch_assoc($res)) {
            $idServico = $registro["idServico"];
            $nomeServico = $registro["nomeServico"];
            $nomePrestador = $registro ["nomePrestador"];
            echo "<option value='$idServico'>$nomeServico - $nomePrestador</option>";
        }
        ?>
        </select><br><br>
    <label for="nome">Nome do Cliente:   </label><input type="text" name="nomeCliente" size="40"><BR><BR>
    <label for="email">E-mail do Cliente: </label><input type="text" name="email" size="40"><BR><BR>
    <label for="telefone">Telefone do Cliente: </label><input type="text" name="telefone" size="38"><BR><BR>
    Dia: <select name="dia" style="width:60px;" >
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
    </select>
   <br><br>Mês: <select name="mes" style="width:60px;">
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
    </select>
   <br><br>Ano: <select name="ano" style="width:60px;">
        <option> 2017 </option>
        <option> 2018 </option>
        <option> 2019 </option>
        <option> 2020 </option>
    </select>
    <br><br>Hora: <select name="hora" style="width:60px;">
        <option> 12 </option>
        <option> 13 </option>
        <option> 14 </option>
        <option> 15 </option>
    </select>
        <br><br><input type="submit" value="Enviar"> 
                <input type="reset" value="limpar">
        </form>
        
		
		<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
		<script>
			$( 'form' ).submit(function(e){
				e.preventDefault();
				if( !$('input[name="nomeCliente"]').val() ){
					alert( 'Nome invalido' );
				}else if( !$('input[name="email"]').val() ){
					alert( 'E-mail  invalido' );
				}else if( !$('input[name="email"]').val() ){
					alert( 'telefone invalido' );
				}else{
					$(this).unbind('submit').submit();
				}
			});
		</script>
		
      </body>
</html>

Share this post


Link to post
Share on other sites

Pessoal, não sei se deveria abrir um novo tópico ou continuar nesse, se for preciso eu crio outro mas inicialmente vou postar aqui:

O meu problema mudou, consegui fazer aparecer todos os campos do meu código, porém quando eu clico em enviar, ele nao esta gravando no banco de dados.

 


<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content_Type" content="text/html; charset="UTF-8">
        <title>WebServiços - Agendamento</title>
    </head>
    <body>
        
        <form name="envia" action="conecta.php">
        <h1>WebServiços - Agendamento</h1>
        <th>Serviços:</th> 
        <select name="servicos">
        <?php
        $idServico = $_POST ["idServico"];
        $nomeServico = $_POST["nomeServico"];
        $nomeCliente = $_POST ["nomeCliente"];
        $email = $_POST ["email"];
        $telefone = $_POST ["telefone"];
        
        include_once ("conecta.php");
        $sql = "Select * from servico";
        $sql2 = "INSERT INTO agenda ( nomeCliente, email, telefone)
                VALUES ( '$nomeCliente' , '$email' , '$telefone') ";
    
        $res = mysqli_query($conexao, $sql) or die ("Erro ao pesquisar os dados." . mysql_error());
        
        while ($registro = mysqli_fetch_assoc($res)) {
            $idServico = $registro["idServico"];
            $nomeServico = $registro["nomeServico"];
            $nomePrestador = $registro ["nomePrestador"];
            echo "<option value='$idServico'>$nomeServico - $nomePrestador</option>";
        }
        ?>
        </select><br><br>
    <label for="nome">Nome do Cliente:   </label><input type="text" name="nomeCliente" size="40"><BR><BR>
    <label for="email">E-mail do Cliente: </label><input type="text" name="email" size="40"><BR><BR>
    <label for="telefone">Telefone do Cliente: </label><input type="text" name="telefone" size="38"><BR><BR>
    Dia: <select name="dia" style="width:60px;" >
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
        <option> 6 </option>
        <option> 7 </option>
        <option> 8 </option>
        <option> 9 </option>
        <option> 10 </option>
        <option> 11 </option>
        <option> 12 </option>
        <option> 13 </option>
        <option> 14 </option>
        <option> 15 </option>
        <option> 16 </option>
        <option> 17 </option>
        <option> 18 </option>
        <option> 19 </option>
        <option> 20 </option>
        <option> 21 </option>
        <option> 22 </option>
        <option> 23 </option>
        <option> 24 </option>
        <option> 25 </option>
        <option> 26 </option>
        <option> 27 </option>
        <option> 28 </option>
        <option> 29 </option>
        <option> 30 </option>
        <option> 31 </option>
    </select>
   <br><br>Mês: <select name="mes" style="width:60px;">
        <option> 1 </option>
        <option> 2 </option>
        <option> 3 </option>
        <option> 4 </option>
        <option> 5 </option>
        <option> 6 </option>
        <option> 7 </option>
        <option> 8 </option>
        <option> 9 </option>
        <option> 10 </option>
        <option> 11 </option>
        <option> 12 </option>
    </select>
   <br><br>Ano: <select name="ano" style="width:60px;">
        <option> 2017 </option>
        <option> 2018 </option>
        <option> 2019 </option>
        <option> 2020 </option>
    </select>
    <br><br>Hora: <select name="hora" style="width:60px;">
    <option> 7 </option>
        <option> 8 </option>
        <option> 9 </option>
        <option> 10 </option>
        <option> 11 </option>
        <option> 12 </option>
        <option> 13 </option>
        <option> 14 </option>
        <option> 15 </option>
        <option> 16 </option>
        <option> 17 </option>
    </select>
        <br><br><input type="submit" value="Enviar"> 
                <input type="reset" value="limpar">
        </form>
        <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
        <script>
            $( 'form' ).submit(function(e){
                e.preventDefault();
                if( !$('input[name="nomeCliente"]').val() ){
                    alert( 'Nome invalido' );
                }else if( !$('input[name="email"]').val() ){
                    alert( 'E-mail  invalido' );
                }else if( !$('input[name="email"]').val() ){
                    alert( 'telefone invalido' );
                }else{
                    $(this).unbind('submit').submit();
                }
            });
        </script>
      </body>
</html>

 

conexao:


<?php
        
$conexao = mysqli_connect("localhost", "root","", "etec_servicos") or die ("Não foi possível conectar ao banco de dados." . mysqli_error());    
 
mysqli_query($conexao, "SET NAMES 'utf8'");
   mysqli_query($conexao, "SET character_set_connection=utf8");
   mysqli_query($conexao, "SET character_set_client=utf8");
   mysqli_query($conexao, "SET character_set_results=utf8");
    ?>
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Rafaelax
      Oi queridos,
      Não sou programadora e nem entusiasta de programação, apenas altero algumas coisas no meu programa que tenho de cadastro de clientes. Coisas básicas vamos dizer;
      Para facilitar tudo, quando o programa foi criado, foi feito um campo de data automático no banco de dados como abaixo.
      `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
       
      Funciona bem para o que preciso, mas ele traz a data nesse formato: 2020-03-25 00:20:03
      Data no formato ano/mês/dia e eu queria no formato tradicional dia/mês/ano.
      Só para levar em conta. eu trago a data para visualizar em um campo normal de inpunt com o value="[date]"
      Esse acima é um dos problemas que quero resolver com a parte da data.
       
      Já a segunda questão é justamente envolvendo essa data automática, pois qualquer edição que faço ele atualiza a data e o horário. Perfeito. Mas perco a data de cadastro original do cliente. É possível eu ter um outro campo de data automático mas que apenas grave o cadastro e não  atualize automaticamente nas edições?
       
      Eu queria que uma data fosse do cadastro e não atualizasse e outra data continuasse como está, apenas fazendo a inversão.
      Não adianta eu colocar a data manual no cadastro, pois pessoas colocam datas diferentes das do dia do cadastro.
       
    • By adriano.eurich
      Tem como recuperar os dados do banco que foram incluídos através do create, e retornar para a mesmo formulário?
      Quando eu inserir o numero da chave e clicar em pesquisar ele traz o resultado do banco referente aquela chave se ela estiver com a situação 1 que é emprestado ai habilitaria os botões editar e deletar, onde o deletar apenas alterava o situação de 1 para 2 .
      Não consigo fazer essa parte de busca no banco e retornar no mesmo formulário, se é que é possível!
       
      cadastro.php
       
      <?php session_start(); include_once 'includes/header.inc.php'; include_once 'includes/menu.inc.php'; ?> <!-- Formulário de Cadastro Cliente --> <div class="row container"> <form action="banco_de_dados/create.php" method="post" class="col s12"> <fieldset class="formulario" style="padding: 1px;"> <legend><!--<img src="imagens/CadCli.png" alt="[imagem]" style="width:40x; height:40px">--></legend> <br> <?php if (isset($_SESSION['msg'])): echo $_SESSION['msg']; session_unset(); endif; ?> <!-- Campo Chave --> <div class="input-field col s12"> <i class="material-icons prefix">vpn_key</i> <input type="text" name="chave" id="chave" maxlength="4" required> <label for="chave">Chave</label> </div> <!-- Campo Nome --> <div class="input-field col s12"> <i class="material-icons prefix">account_circle</i> <input type="text" name="nome" id="nome" maxlength="40" required autofocus> <label for="nome">Nome</label> </div> <!-- Campo Instituição --> <div class="input-field col s12"> <i class="material-icons prefix">account_balance</i> <input type="text" name="inst" id="inst" maxlength="40" required autofocus> <label for="inst">Instituição</label> </div> <!-- Campo Telefone --> <div class="input-field col s12"> <i class="material-icons prefix">phone</i> <input type="text" name="telefone" id="telefone" maxlength="13" required> <label for="telefone">Telefone</label> </div> <!-- Botões --> <div class="input-field col s12"> <input type="submit"style="width:108px; height:35px" value="cadastrar" class="btn green"> <input type="submit"style="width:108px; height:35px" value="Pesquisar" class="btn blue"> <input type="submit"style="width:108px; height:35px" value="Editar" class="btn orange"> <input type="submit"style="width:108px; height:35px" value="Devolver" class="btn red"> </div> </fieldset> </form> </div> <?php include_once 'includes/footer.inc.php'; ?> <?php include_once 'includes/script.inc.php'; ?>  
      create.php
       
      <?php session_start(); include_once 'conexao.php'; $id = $_POST ['id']; $nome = $_POST ['nome']; $inst = $_POST ['inst']; $data = date('y-m-d'); $telefone = $_POST ['telefone']; $chave = $_POST ['chave']; $situacao = $_POST ['situacao']; $queryInsert = $link->query("insert into tb_cadastro VALUES ('" . $id . "', '" . $nome . "','" . $inst . "','" . $data . "','" . $telefone . "','" . $chave . "','1')"); $affected_rows = mysqli_affected_rows($link); if ($affected_rows > 0): $_SESSION['msg'] = "<p class='center green-text'>" . 'Cadastrado com Sucesso!' . "<br>"; header("Location: ../cadastro.php"); endif;  
       
       
       
       

    • By danilo759
      Estou precisando saber o percentual de imagens que está no diretório e estou com dificuldades. Alguém pode me ajudar dar uma luz?

       
      $qry_canal = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal IN('HBO','GLO','TNT') GROUP BY dados.titulo"); $counter = 0; while($rows = $qry_canal->fetch(PDO::FETCH_ASSOC)){ $id = $rows['id']; $sigla = $rows['canal']; $sk = substr($rows['sk'], 0, 14); // Busca total de programas por canal /* ---------------------------------------------------------------- */ $qry_b = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal LIKE '".$sigla."' GROUP BY dados.titulo"); $total_programas = $qry_b->rowCount(); if(empty($serieskey)) { $prog_id = "$id"; } else{ $prog_id = "$sk"; } // VERIFICA SE EXISTE IMAGEM /* ---------------------------------------------------------------- */ if(file_exists("/imagens/".$prog_id."_epg.jpg")){ $arr_img[] = "".$counter++.""; } $total_fotos = "".count($arr_img).""; echo "".($total_fotos * 100 ) / $total_programas."% <br />"; }  
    • By Rafaelmcd
      Galera, queria a ajuda de você para fazer uma implementação em meu site. Eu estou tentando passar algumas informações do site atual para outro site, através de parâmetros na URL. E queria recuperar esses dados no outro site.
       
      Exemplo:
      No site inicial queria passar os seguintes dados: IP, URL principal do site, Titulo da Página, URL atual. O problema é que não sei pegar esses dados e converter em variável no site final. 
       
      Penso que no site inicial a URL deveria ser enviada mais ou menos dessa forma: https://siteinicial.com/post-teste?IP=127.0.0.1&UrlIni=siteinicial.com&Titulo=Post Teste&UrlAt=https://siteinicial.com/post-teste
       
      O problema é que não sei como capturar essas informações na pagina para passar na URL. 
      ===============================================
       
      O segundo passo a recuperar no site final. 
       
      Vi sobre esse script (<?php $url = parse_url($_SERVER["HTTP_REFERER"]);parse_str($url["query"],$queryString);?>) que recebe esses dados, mas não sei como pegar cada um dos dados recebidos e guardar em uma variável. 
       
      Se alguem puder me ajudar, eu agradeço. OBS: Os sites estão em WordPress.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.