Ir ao conteúdo

Posts recomendados

Postado
<form action="" method="GET">
  <div class="card">
  <div class="card-header">
 <b>   Dificuldade: </b>
  </div>
  <div class="card-body">
<div class="row">
  <div class="col-md-6">
  <select id="opcao" class="form-control form-control-lg">
  <option>Fácil</option>
  <option>Médio</option>
  <option>Difícil</option>
</select>
</div>
<button type="submit" id="select" class="btn btn-primary">Selecionar</button>
</div>
<br>
<button id="descovery" class="btn btn-danger">Descubra seu nível</button>
</div>
</div>
</form>

Estou praticando um site quizz,dependendo do valor selecionado,(fácil;médio;difícil) ele vai mudar algumas propriedades do jogo,como por exemplo quais perguntas vão ser exibidas do BD ou até se cada pergunta for uma página qual será acessível,mas estou sem saber como enviar o valor do select para o banco de dados,como receber esse valor sejá post ou Get e gravar um update quando a definição de nível é criada?

Postado

Olá!
Já sabe para onde irá redirecionar o conteúdo? Se sim, atribua o caminho no action, caso seja para a própria página ignore isso
No formulário o que falta é o value em cada um dos options dentro do seu select e o nome do select, ficaria mais ou menos assim:

Select:

<select id="opcao" class="form-control form-control-lg" name="teste">

Option:
 

<option value="1">Fácil</option>
<option value="2">Médio</option>
<option value="3">Difícil</option>

Esperto ter ajudado!
Qualquer coisa é só falar!

Postado
1 hora atrás, Will871 disse:

Olá!
Já sabe para onde irá redirecionar o conteúdo? Se sim, atribua o caminho no action, caso seja para a própria página ignore isso
No formulário o que falta é o value em cada um dos options dentro do seu select e o nome do select, ficaria mais ou menos assim:

Select:

<select id="opcao" class="form-control form-control-lg" name="teste">

Option:
 

<option value="1">Fácil</option>
<option value="2">Médio</option>
<option value="3">Difícil</option>

Esperto ter ajudado!
Qualquer coisa é só falar!

Mudei pra isso:

<div class="card text-center">
<div class="card-header">
  <b>Selecione o novo nível: </b>
</div>
<div class="card-body">
<form method="GET">
  <div class="form-check">
  <input class="form-check-input" type="radio" name="select" id="exampleRadios1" value="Fácil" checked>
  <label class="form-check-label" for="exampleRadios1">
    Fácil
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="select" id="exampleRadios2" value="Médio">
  <label class="form-check-label" for="exampleRadios2">
    Médio
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="select" id="exampleRadios3" value="Difícil">
  <label class="form-check-label" for="exampleRadios3">
    Díficil
  </label>
</div>
<div class="col-auto my-1">
      <button type="submit" class="btn btn-primary">Selecionar</button>
  </div>
</form>
</div>
</div>

 

Postado

Ai você mudou o tipo de execução, agora será radio ...
Só para te explicar melhor, o atributo name serve para dar identificação para quando ele chegar no PHP, do jeito que ta ai no name ele chegara no $_POST ou $_GET, no seu caso será $_GET['select'], se o form tivesse o atributo method="POST" e o name dos radios fosse teste123, seria $_POST['teste123']


Te recomendo usar o method="POST" em seus formulários (estude sobre o atributo method para formulários) e o var_dump no PHP para que faça os seus testes, ficará assim:

<?php
// Para verificar o que tem dentro do POST
var_dump($_POST);

// Para verificar o que tem dentro do GET
var_dump($_GET);

 

Quando envia um formulário para algum script em PHP, todos os dados serão armazenados nessas variáveis, recomendo que estude sobre as duas para melhor domínio.
Mas, basicamente, o name do seu campo no formulário determinará como será o nome da chave quando ele chegar no PHP, e o value determinará o valor que ele irá carregar, no seu caso será mais ou menos isso:
 

// Considerando que marcou a dificuldade médio, terá:

[
	'select' => 'Médio'
]

// Caso em seu formulário tenho um outro campo que tenha name="exercicio" e seja um type="text", o var_dump retornaria, em caso da pessoa preencher "alow", mais ou menos isso aqui:

[
	'exercicio' => 'alow'
]


Com isso você conseguirá capturar toda informação do formulário no PHP.
Te recomendo ver também sobre o atributo action do formulário, ele serve para fazer o seguinte ...
Vamos supor que seu arquivo HTML com o formulário se chame index.html, e você queira pegar esses dados do formulário e enviar para uma página em PHP que se chama processarFormulario.php está em uma pasta chamada codigoPHP, tanto a pasta com o arquivo em php quanto o arquivo com o formulário se encontram no mesmo local, temos o seguinte:
 

// Imagine como se fossem diretórios, estariam organizados dessa forma (caso não entenda essa parte ignore, acredito que com as demais explicações irá entender o que quis dizer aqui)

codigoPHP (pasta)
	processarFormulario.php (arquivo)
index.html (arquivo)

Para que possa enviar seu formulário do index.html para o arquivo processarFormulario.php, que está dentro da pasta codigoPHP, terá que fazer o seguinte no seu formulário:
 

<form action="codigoPHP/processarFormulario.php">
	<!-- Seu formulário (campos inputs, selects, textarea, etc ... vem aqui) -->
</form>

Assim ele entenderá que deverá enviar os dados desse formulário para o arquivo processarFormulario.php que está na pasta codigoPHP!

Para fazer o resto, precisaremos de detalhes sobre seu banco de dados.
Nessa parte de conexão espero que consiga resolver, pode seguir esses dois passos:

 - Faz um banco de dados (bem simples no seu caso, já que é para estudos);
 - Prepara a conexão no PHP (você consegue código pronto com essa parte, eles são bem pequenos e simples);

Quando tiver essa parte feita, mande um post aqui detalhando para que eu ou o pessoal que quiser e possa responder responda.
Caso não tenha domínio básico dessa parte do banco de dados, não te recomendo entrar logo de cara, você vai acabar se atropelando nos estudos e não vai dar muito certo, vá aos poucos!
Estude essa parte que te passei e entenda como tratar os dados, depois entramos em banco de dados, pode responder aqui no post mesmo quando quiser continuar.
Bons estudos, amigo!

Postado
14 horas atrás, Will871 disse:

Ai você mudou o tipo de execução, agora será radio ...
Só para te explicar melhor, o atributo name serve para dar identificação para quando ele chegar no PHP, do jeito que ta ai no name ele chegara no $_POST ou $_GET, no seu caso será $_GET['select'], se o form tivesse o atributo method="POST" e o name dos radios fosse teste123, seria $_POST['teste123']


Te recomendo usar o method="POST" em seus formulários (estude sobre o atributo method para formulários) e o var_dump no PHP para que faça os seus testes, ficará assim:

<?php
// Para verificar o que tem dentro do POST
var_dump($_POST);

// Para verificar o que tem dentro do GET
var_dump($_GET);

 

Quando envia um formulário para algum script em PHP, todos os dados serão armazenados nessas variáveis, recomendo que estude sobre as duas para melhor domínio.
Mas, basicamente, o name do seu campo no formulário determinará como será o nome da chave quando ele chegar no PHP, e o value determinará o valor que ele irá carregar, no seu caso será mais ou menos isso:
 

// Considerando que marcou a dificuldade médio, terá:

[
	'select' => 'Médio'
]

// Caso em seu formulário tenho um outro campo que tenha name="exercicio" e seja um type="text", o var_dump retornaria, em caso da pessoa preencher "alow", mais ou menos isso aqui:

[
	'exercicio' => 'alow'
]


Com isso você conseguirá capturar toda informação do formulário no PHP.
Te recomendo ver também sobre o atributo action do formulário, ele serve para fazer o seguinte ...
Vamos supor que seu arquivo HTML com o formulário se chame index.html, e você queira pegar esses dados do formulário e enviar para uma página em PHP que se chama processarFormulario.php está em uma pasta chamada codigoPHP, tanto a pasta com o arquivo em php quanto o arquivo com o formulário se encontram no mesmo local, temos o seguinte:
 

// Imagine como se fossem diretórios, estariam organizados dessa forma (caso não entenda essa parte ignore, acredito que com as demais explicações irá entender o que quis dizer aqui)

codigoPHP (pasta)
	processarFormulario.php (arquivo)
index.html (arquivo)

Para que possa enviar seu formulário do index.html para o arquivo processarFormulario.php, que está dentro da pasta codigoPHP, terá que fazer o seguinte no seu formulário:
 

<form action="codigoPHP/processarFormulario.php">
	<!-- Seu formulário (campos inputs, selects, textarea, etc ... vem aqui) -->
</form>

Assim ele entenderá que deverá enviar os dados desse formulário para o arquivo processarFormulario.php que está na pasta codigoPHP!

Para fazer o resto, precisaremos de detalhes sobre seu banco de dados.
Nessa parte de conexão espero que consiga resolver, pode seguir esses dois passos:

 - Faz um banco de dados (bem simples no seu caso, já que é para estudos);
 - Prepara a conexão no PHP (você consegue código pronto com essa parte, eles são bem pequenos e simples);

Quando tiver essa parte feita, mande um post aqui detalhando para que eu ou o pessoal que quiser e possa responder responda.
Caso não tenha domínio básico dessa parte do banco de dados, não te recomendo entrar logo de cara, você vai acabar se atropelando nos estudos e não vai dar muito certo, vá aos poucos!
Estude essa parte que te passei e entenda como tratar os dados, depois entramos em banco de dados, pode responder aqui no post mesmo quando quiser continuar.
Bons estudos, amigo!

Muito obrigado pela ajuda,eu consegui atualizar esse campo,vou mandar o código da página que processa tudo isso: 

<?php
session_start();
include_once("conexao.php");	
$_POST["select"];
$dificuldade = $_POST["select"];
$result_usuario = "UPDATE usuarios SET dificuldade='$dificuldade' WHERE id='$id'";
$resultado_usuario = mysqli_query($conn, $result_usuario);
if(mysqli_affected_rows($conn)){
	$_SESSION['msg'] = "<p style='color:green;'>Dificuldade alterada</p>";
	header("Location: dificuldade.php");}
	else{
	$_SESSION['msg'] = "<p style='color:red;'>Dificuldade não foi editado com sucesso</p>";
	header("Location: dificuldade.php");}

Se puder me ajudar em outra coisa,como atualizar a nova dificuldade ao recarregar a página? ele só atualizar ao entrar e sair. 

quando resgata as informações de login.

Postado

@felipe honorio 
Bom, vamos lá ...
Eu, particularmente, não uso session dessa forma que usou ai, acho uma péssima prática, mas pode ser que eu esteja errado!
Session eu uso somente para armazenar dados que são cruciais para o processamento do site (id do usuário que está logado, normalmente), mas mensagens de retorno podem ser processadas de outra forma, que ficaria muito melhor para o sistema.
Recomendo que estude um pouco sobre $_SESSION e tenha melhor domínio dela, saiba o que ela é pro sistema e como pode torna-lá útil para você da forma adequada de acordo com seus critérios.

Notei ali no seu código que existe um arquivo dificuldade.php, vou chutar que ele é seu HTML!
Notei que você armazenou na $_SESSION alguns dados, mas acredito que sendo uma informação tão simples poderia ser passado pelo GET do próprio header ao redirecionar o usuário, seria mais ou menos dessa forma:

<?php
session_start();
include_once("conexao.php");

$dificuldade = $_POST["select"];
$resultado_usuario = mysqli_query($conn, "UPDATE usuarios SET dificuldade='$dificuldade' WHERE id='$id'");
if(mysqli_affected_rows($conn))
  header("Location: dificuldade.php?dificuldade=".$dificuldade);
else
  header("Location: dificuldade.php?dificuldade=Falha");

Lá no seu arquivo dificuldade.php ele estará disponível na variável global $_GET!
dê um var_dump no $_GET e veja como fica, pense em formas de trabalhar com ele para o que quer fazer!
Eu não conseguirei te ajudar muito com essas informações que passou, apareceram várias coisas novas que você não havia citado, eu pensei que você só tinha o HTML na primeira mensagem, depois apareceram novas ideais e novas informações que eu nem sequer sabia que existia (login e a variável $id, por exemplo ...).

Pense melhor em sua dúvida e tente descrever mais detalhadamente e de forma objetiva, com essas inforamções está difícil de compreender e vamos ter que fazer 300 posts até chegar na ideia final.
Boa sorte e bons estudos!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!