Ir para conteúdo
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]);
                  }
               }
            }
         }
      
      }
      
      
?>


 

Compartilhar este post


Link para o post
Compartilhar em outros 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>

 

Compartilhar este post


Link para o post
Compartilhar em outros 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 ?  

Compartilhar este post


Link para o post
Compartilhar em outros 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 {
			...
		}
	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros 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"

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta algo do tipo:

 

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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por violin101
      Caros amigos
       
      Gostaria de tirar uma dúvida com os amigos.
       
      No Codeiginter tem como visualizar um arquivo .PDF dentro do sistema ?
       
      Por exemplo:
             o usuário realizou um download do arquivo --> DadosEmpresa.pdf
       
      Quando clicar em cima do arquivo, tem como visualizar em uma página o arquivo ?   E como faria ?
       
      Grato,
       
      Cesar
    • Por Ivana_Silva
      Olá a todos que estão lendo!
       
      Preciso de uma função PHP que filtre 2 padrões de campos a partir do caractere barra(|), preservando a linha.
       
      Em uma caixa de texto vou colar valores assim:
      0001|qwerty
      0002|091234
      0003|09164867
      0004|ab12312
      ...
      A caixa de texto:
      <form id="form" name="form" method="post" action=""> <textarea name="lista" type="text" id="lista" cols="48" rows="5" size="600" /></textarea> <br /> <br /> <button type="submit">Separar</button> </form> <?php ?> Quando eu clicar no botão Separar, preciso que o código filtre e mostre apenas as linhas que, após barra " | " possuam números inteiros de 6 e 8 dígitos(sem letras, símbolos ou pontos).
       
      Exemplo:
      Dados colados na caixa de texto:
      0001|qwerty
      0002|091234
      0003|09164867
      0004|ab12312
       
      Dados filtrados após clicar no botão Separar:
      0002|091234
      0003|09164867
       
      Filtrou apenas os campos que após a barra "|" possuem 6 e 8 dígitos(Nem mais nem menos), não é pra filtrar campos com letras ou números e letras, se tiver letra após a barra já descarta... É pra Filtrar e mostrar apenas as linhas que possuem 6 e 8 dígitos após a barra.
      Agradecida se alguém puder ajudar!
       
    • Por RSN
      Boa Noite, 
      Gostaria de saber se existe a possibilidade de gravar além do id do option value outra variavel, para enviar via post.
      <div class="form-group"> <label class="col-md-4 control-label" for="txtgrupo">Tipo de Pagamento : </label> <div class="col-md-4"> <select id="" class="selectpicker" data-live-search="true" name="tipo_pagamento" > <?php $query = mysql_query("SELECT * FROM tipo_pagamento ORDER BY id ASC"); while($result = mysql_fetch_array($query)) { echo '<option value="'.$result["id"].'">'.$result["nome_tipo"].'</option>'; } ?> </select> </div> </div>  
    • Por JeanTDZ
      Eu tenho um form com algumas informações etc. O form envia pro banco de dados e tudo mais, funcional.
       
      Alguém teria algum exemplo que após o submit, o form é transformado em pdf/doc e direcionado para uma pasta/ftp já criada.?
    • Por jparenque
      Pessoal, estou precisando de um código em php que faça o seguinte:

      1- acesse uma url capture e grave o código fonte
      2- acesse novamente a mesma url, capture o código fonte e compare com o código da primeira captura
      3- se o código for igual ao da primeira captura ele acessa novamente e compara novamente
      4- se o código for diferente do da primeira captura ele tem que abrir o navegador Chrome e ir para essa url através do navegador.
      5- o fim do código deverá ser apenas quando ele acessar a url encontrar um conteúdo diferente do da primeira captura.

      Vou rodar o php na máquina local. O objetivo é monitorar uma página url específica com relação à uma alteração que ocorrerá. E quando ocorrer precisarei atuar nessa página imediatamente.

      Obrigado a todos!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.