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 Cesar Melo
      Olá. Gostaria de uma opinião sobre onde focar meus estudos para trabalhar com PHP.
      Atualmente tenho conhecimentos com a linguagem PHP, e os seguintes frameworks: Bootstrap e Jquery.
      Recentemente fiz um curso de Laravel+materialize e gostei muito desse framework. Meu primeiro contato com framework para backend e pretendo utilizar o Laravel daqui pra frente nos meus estudos.
       
      Minha questão é a seguinte, quero dar continuidade aos meus estudos para me qualificar para o mercado de trabalho, mas não sei exatamente os próximos cursos que vou estudar.
      Não sei se atualmente há uma combinação de frameworks mais utilizada ou requisitada no mercado de trabalho. Ex: Laravel+vue+bootstrap, ou laravel+angularjs+materialize, tipo isso.
       
      Dei uma pesquisada no google e youtube, e notei que não há muito conteúdo de cursos por exemplo de Laravel+angularjs.
      Procurando algumas vagas de emprego, notei que há grande procurar para profissionais com qualificação em Laravel, e tambem grande procura para profissionais com qualificação em AngularJs, porém vagas distintas. Acho que não vi nenhuma vaga que peça Laravel+AngularJs.
       
      Alguém aí pode me passar uma visão ou dar sua opinião sobre isso, para eu focar meus estudos? Alguém sabe o que andam usando bastante? Ou que seja indicado de trabalhar em conjunto com PHP?
       
      Ah, uma observação... atualmente meu foco são de projetos voltados para sistemas, admin, etc. Não tenho muito perfil para projetos de marketing ou que exijam um frontend "lindo". rsrs.
       
      Grato...
    • By Gemenson Miranda
      Oi pessoal, estou com um problema na minha hospedagem LInux do Godaddy, publiquei meu site, fiz o apontamento correto do banco de dados, mas quando acesso a URL o site me exibe HTTP ERROR 500 exibe realizei a configuração do arquivo .htaccess, alterei as permissões para (755), nada disso resolve... A questão e que sempre que comento as informações de apontamento do banco de dados no arquivo index.php o site carrega normalmente, porem sem conexão com o bando mysql, o que me faz pensar que o erro pode esta relacionado ao banco mysql, porem não consigo visualizar o erro por que a tela fica toda branca e não retorna nada, como resolver esse erro ou ao menos exibir qual erro causa ele?? agradeço!
    • By TheRonaldoStar
      Oii, fala ae pessoal!!
      Alguém pode me ajudar com uma coisa por favor?;
      Seguinte!, eu anteriormente fiz uma pergunta aqui no fórum recorrente a isso, mas eu conseguir uma solução parcial.
      Que era, fazer uma listagem de todos os cadastros e fazer a junção dos cadastros com uma coluna igual, Ou seja existem duas colunas [DE e Para], que recebem o id de quem está recebendo ou que está enviando a mensagem, eu conseguir fazer a tal listagem por grupo mas o problema que estou tendo é: que so faz o agrupamento de as colunas contiver o id por ex: [De = "1" e Para ="2"].
      Atualmente estou usando a codificação deste Jeito:
       
      $sql_2 = $db -> prepare("SELECT * FROM privado WHERE (Para = '$Meu_id') Or (De = '$Meu_id') GROUP BY Para, De DESC"); $sql_2 -> execute(); Esta consulta como pode ver ele busca todos os cadastros que tenha o meu ID ou seja do usuário online!, Após a consulta ele vei obter em um "while" somente o [ Id_De eo Id_Para ] desta forma:
      while($dados_2 = $sql_2 -> fetch(PDO::FETCH_OBJ)){ $Id_De = ($dados_2 -> De); $Id_Para = ($dados_2 -> Para); } Mas em fim eu gostaria de saber como mostrar somente um resultado ou seja o ultimo resultado que tiver o meu ID em ambas colunas [ Id_De ou Id_Para ].
      Antes de vocês me recomendar a função DESC LIMIT 'valor' saiba eu quero que liste todos os usuários que enviou ou recebeu minha mensagem não somente 1 ou seja se eu mandar um mensagem para o usuário 2 e ele me retornar uma mensagem vai mostrar somente o ultimo registro que tenha o meu ID e o id dele.
       
      Atenciosamente,
      ~Ronaldo
       
    • By TheRonaldoStar
      Oi, mais cedo eu fiz um post aqui no site mas um pouco longo creio eu que e mais fácio eu fazer uma pergunta mais direta.
      A pergunta é:
      Como posso fazer agrupamentos de uma tabela através de dois campos cujo os valores são =, mesmo que esteja invertidos?
      EX: [DE = "1"], [PARA = "2"].
      E fazer o agrupamento ou só mostrar o ultimo cadastro mesmo que eles estejam invertidos desta forma?
      EX: [DE = "2"], [PARA = "1"].
       
      Acho que agora com este post fui mais claro, Alguém pode me ajudar por favor??.
      Atenciosamente,
      ~Ronaldo
×

Important Information

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