Jump to content
neto_celino

Obter quantidade por POST ou GET

Recommended Posts

Bom dia,

 

Estou com este código que estou usando na página carrinho.php.

Ele faz a administração da pagina carrinho, altera, edita e remove os produtos.

 

Mas, não estou conseguindo fazer com que ele RECEBA a quantidade por post vindo de outra pagina.

Ou seja, a minha pagina produto.php o cliente digita a quantidade em um input e clica em ADICIONAR ao carrinho ele enviaria para a pagina carrinho.php e adicionaria sessions e tudo mais o produto e a quantidade escolhida.

 

Alguem pra me dar uma luz ? Obrigado desde já.

 

 

 <?php 

      session_start();
      
      if(!isset($_SESSION['carrinho'])){
         $_SESSION['carrinho'] = array();
      }
      
      //adiciona produto
      
      if(isset($_GET['acao'])){
         
         //ADICIONAR CARRINHO
         if($_GET['acao'] == 'add'){
            $id = intval($_GET['id']);
            if(!isset($_SESSION['carrinho'][$id])){
               $_SESSION['carrinho'][$id] = 1;
            }else{
               $_SESSION['carrinho'][$id] += 1;
            }
         }
		 
		 
		 
		 
		 
         
         //REMOVER CARRINHO
         if($_GET['acao'] == 'del'){
            $id = intval($_GET['id']);
            if(isset($_SESSION['carrinho'][$id])){
               unset($_SESSION['carrinho'][$id]);
            }
         }
         
         //ALTERAR QUANTIDADE
         if($_GET['acao'] == 'up'){
            if(is_array($_POST['prod'])){
               foreach($_POST['prod'] as $id => $qtd){
                  $id  = intval($id);
                  $qtd = intval($qtd);
                  if(!empty($qtd) || $qtd <> 0){
                     $_SESSION['carrinho'][$id] = $qtd;
                  }else{
                     unset($_SESSION['carrinho'][$id]);
                  }
               }
            }
         }
      
      }
      
      
?>


 

Share this post


Link to post
Share on other sites
1 minuto atrás, Rasp disse:

Qual o código da sua página que envia as informações?

É um simples form bem básico, segue:

 

  
		<form action="carrinho.php?acao=add&id=<?php echo $_GET['id']; ?>" method="post">
  <p>
    <input name="prod" type="text" id="prod">
  </p>
  <p>
    <input type="submit" name="submit" id="adicionar" value="Adicionar ao carrinho">
  </p>
</form>

 

Share this post


Link to post
Share on other sites
26 minutos atrás, neto_celino disse:

É um simples form bem básico, segue:

 


  
		<form action="carrinho.php?acao=add&id=<?php echo $_GET['id']; ?>" method="post">
  <p>
    <input name="prod" type="text" id="prod">
  </p>
  <p>
    <input type="submit" name="submit" id="adicionar" value="Adicionar ao carrinho">
  </p>
</form>

 

 

Seu formulário esta em POST, e seu carrinho pegando as informações por GET ?  

Share this post


Link to post
Share on other sites

Neto,

 

No trecho "adicionar" você não incluiu $_POST["prod"]

 

      //adiciona produto
      
      if(isset($_GET['acao'])){
         
         //ADICIONAR CARRINHO
         if($_GET['acao'] == 'add'){
            $id = intval($_GET['id']);
            if(!isset($_SESSION['carrinho'][$id])){
               $_SESSION['carrinho'][$id] = 1;
            }else{
               $_SESSION['carrinho'][$id] += 1;
            }
         }

 

Deveria ficar assim:

 

// verifica o ID passado
$id = intval($_GET['id']);

//adiciona produto
if(isset($_GET['acao'])) {
	//ADICIONAR CARRINHO
	if($_GET['acao'] == 'add') {
		if(!isset($_SESSION['carrinho'][$id])) {
			echo $_POST["prod"];
		} else {
			...
		}
	}
}

 

Share this post


Link to post
Share on other sites
2 minutos atrás, igu disse:

 

Seu formulário esta em POST, e seu carrinho pegando as informações por GET ?  

 

É possível usar os dois métodos juntos sim. O que acontece é que ele não capturou as informações via post em "adicionar"

Share this post


Link to post
Share on other sites
9 minutos atrás, Rasp disse:

Neto,

 

No trecho "adicionar" você não incluiu $_POST["prod"]

 


      //adiciona produto
      
      if(isset($_GET['acao'])){
         
         //ADICIONAR CARRINHO
         if($_GET['acao'] == 'add'){
            $id = intval($_GET['id']);
            if(!isset($_SESSION['carrinho'][$id])){
               $_SESSION['carrinho'][$id] = 1;
            }else{
               $_SESSION['carrinho'][$id] += 1;
            }
         }

 

Deveria ficar assim:

 


// verifica o ID passado
$id = intval($_GET['id']);

//adiciona produto
if(isset($_GET['acao'])) {
	//ADICIONAR CARRINHO
	if($_GET['acao'] == 'add') {
		if(!isset($_SESSION['carrinho'][$id])) {
			echo $_POST["prod"];
		} else {
			...
		}
	}
}

 

 

Sim, nesse caso sim. Mas não estou conseguindo gravar a session com a quantidade que vem por POST. 
Queria que ele recebesse o valor por POST, gravasse a SESSION com a quantidade que veio e exibisse no carrinho a quantidade.

Share this post


Link to post
Share on other sites

Tenta algo do tipo:

 

$carrinho = array();
$carrinho['id'] = $id;
$carrinho['prod'] = $_POST['prod'];
...
$_SESSION['carrinho'] = $carrinho;

 

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 Caio Vargas
      Boa tarde pessoal blz ?
      Estou com uma dúvida sobre implementação do checkout transparente do mercado pago 
       
      Alguém já fez essa implementação eu estou com dúvida sobre a documentação que não estou conseguindo intender 
       
      Pelo botão eu só consigo insistir um produtos só então a opção correta seria o checkout transparente mesmo se alguém puder me ajudar agradeço 
    • By joeythai
      Bom dia pessoal, minha dúvida é simples, vi que alguns arquivos xml tem a saída de data desta forma  "2020-01-22T09:18:50", como faço pra imprimir a data desta forma ? E o que significa esse T?]
      Eu estou usando o Carbon, to tentando encontrar esse padrão na documentação.
      2018-05-29T17:47:57 2018-05-29T17:47:57
    • By Sapinn
      Resolvi atualizar meu xampp para a versão 7.4.14 e estou com um erro de Internal Server Error que fica em um projeto que estou usando htacess para fazer urls amigáveis o arquivo usados são:
      Arquivo externo:
       
      <IfModule mod_rewrite.c>
          RewriteEngine on
          RewriteRule ^$ public/ [L]
          RewriteRule (.*)public/$1 [L]
      </IfModule>
       
      Dentro da pasta public:
       
      <IfModule mod_rewrite.c>
          Options -Multiviews
          RewriteEngine On
          RewriteBase /unset_mvc/public
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
      </IfModule>
       
      Dentro da pasta app:
      Options -Indexes
       
      Preciso de ajuda porquê não sei o que fazer, já tentei apagar algumas coisas no httpd.conf dentro do xampp mas não funcionou.
    • By violin101
      Caros amigo, saudações...

      por favor, me perdoa se postei na opção errada.
       
      estou com a seguinte dúvida.
       
      tenho o seguinte código no cadastro: 1234 0000 4320 9785
       
      como consigo mostrar /inibir os números no meio, para o usuário desta forma: 1234********9785
       
      Grato,
       
      Cesar
    • By Rodrigo5468
      Olá, boa tarde!
       
      Eu estava procurando na internet, mas não obtive nenhum resultado significativo.
      Eu preciso de um script em php que converte os links do youtube para o formato .mp4. Como que eu posso fazer isso? Alguma dica?
      Quero que quando o usuário informa o link do youtube no input e clica no botão de converter baixe o vídeo e faz a conversão para .mp4 e fornece para o usuário o link convertido para .mp4.
       
       
      Obrigado desde já.
×

Important Information

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