How to get to pass the value of an input to the url

1
Good morning everyone, I'm a beginner in php and I'm setting up a virtual store here at my stage, well, I can already create the session with the cart and delete it without problems, I can not change the amount the user informed him and he will update the cart, here follows the code that I use to create the cart

if (isset($_SESSION['carrinho'])){
$_SESSION['carrinho'][base64_decode($_GET['id'])] = $_POST['qtde'];
}else{
     $_SESSION['carrinho'] = array();
     $_SESSION['carrinho'][base64_decode($_GET['id'])] = $_POST['qtde'];
 }

Below is the code for the cart page, I do not know which way to go

<?php 
include_once './cabecalho.php';
//FAZER BACALHAU PARA MONTAR UMA TABELA COM OS ITENS E TER AS SEGUINTES OPÇÕES:
// =>ALTERAR QUANTIDADE;
// =>EXCLUIR PRODUTO - OK 
// TER UM CAMPO PARA FINALIZAR O PEDIDO
// MONTAR GRID COM OS PRODUTOS - OK
$wLista='';
$wCont=1;
foreach ($_SESSION['carrinho'] as $produto_id => $qtde) {
//AQUI FAZER BACHALHAU PARA PEGAR OS PRODUTOS DO BANCO
$objProduto = new Produtos();
$objProduto->id=$produto_id;
$produto = $objProduto->SelectUm();

$wLista.='<tr>
       <td>'.$wCont.'</td>
       <td><input type="hidden" name="produto_id[]" value="'.$produto_id.'">'.$produto->nome.'</td>
       <td><input type="text" value="'.$qtde.'" name="qtde[]" id="qtde"></td>
       <td>
            <a class="btn btn-primary btn-xs" name="alterar" href="carrinho.php?alterar='.base64_encode($produto_id).'"><i class="fa fa-edit"></i> Atualizar </a>
            <a class="btn btn-danger btn-xs" name="excluir" href="carrinho.php?excluir='.base64_encode($produto_id).'"><i class="fa fa-edit"></i> Excluir </a>
        </td>
     </tr>';
$wCont++;
}
unset($produto);
if ($_GET){
if (isset($_GET['excluir'])){
    $id = intval(base64_decode($_GET['excluir']));
    if(isset($_SESSION['carrinho'][$id])){
        unset($_SESSION['carrinho'][$id]);
        header("Location: carrinho.php");
        exit();
    }
}

if (isset($_GET['alterar'])){
    //PERCORRER OS ITENS DA VARIAVEL SESSION['carrinho']
    //DEPOIS QUE ACHAR O ITEM, ALTERAR A QTDE NA SESSION 
    //E RECARREGAR PÁGINA
    $id = intval(base64_decode($_GET['alterar']));
    foreach ($_SESSION['carrinho'] as $produto_id =>$qtde){
        if ($produto_id===$id){
            $qtde = $_GET['qtde[]'];
            echo '<script>alert("encontrei !!!!!")</script>';
        }   
    }
}
}
if ($_POST){
$wLista='';
foreach ($_SESSION['carrinho'] as $produto_id => $qtde) {
    //AQUI FAZER BACHALHAU PARA PEGAR OS PRODUTOS DO BANCO
    $objProduto = new Produtos();
    $objProduto->id=$produto_id;
    $produto = $objProduto->SelectUm();

$wLista.='<tr>
       <td>'.$wCont.'</td>
       <td><input type="hidden" name="produto_id[]" value="'.$produto_id.'">'.$produto->nome.'</td>
       <td><input type="text" value="'.$qtde.'" name="qtde[]" id="qtde"></td>
       <td>
            <a class="btn btn-primary btn-xs" name="alterar" href="carrinho.php?alterar='.base64_encode($produto_id).'?qtde="><i class="fa fa-edit"></i> Atualizar </a>
            <a class="btn btn-danger btn-xs" name="excluir"  href="carrinho.php?excluir='.base64_encode($produto_id).'"><i class="fa fa-edit"></i> Excluir </a>
        </td>
     </tr>';
$wCont++;
}
unset($produto);
}
?>
<form role="form" action="finalizaCarrinho.php" method="post" >
<div class="section">
  <div class="container">
    <div class="row">
      <div class="col-md-1"></div>
      <div class="col-md-10">
        <table class="table table-bordered table-condensed table-striped">
          <thead>
            <tr>
              <th>Nro Item</th>
              <th>Produto</th>
              <th>Qtde</th>
              <th>Ação</th>
            </tr>
          </thead>
          <tbody>
            <?php echo $wLista;?>
          </tbody>
        </table>
      </div>
      <div class="col-md-1"></div>
    </div>
      <div class="row text-right">
      <div class="col-md-12">
          <input type="submit" value="Finalizar Pedido" class="btn btn-primary">
          <a  href="vitrine.php" class="btn btn-primary">Continuar comprando</a>
      </div>
    </div>
  </div>
</div>
</form>
<?php 
include_once './rodape.php';?>

I can not get him to update the session with the qtde that the user informs it in the input, I am grateful for the help of all.

    
asked by anonymous 12.01.2016 / 13:26

2 answers

1

The problem is that there is no GET method with the qtde[] parameter.

The error is:

<a class="btn btn-primary btn-xs" name="alterar" href="carrinho.php?alterar=base?qtde=">

& replaced the ? in the second parameter and the name.

Does this solve? I do not know!

There needs to be a javascript to get the data from the qtde[] field to be inserted into the URL.

Jquery + HTML to solve:

<input type="text" value="'.$qtde.'" name="qtde" idproduto="{BASE64}">
<!-- adcionado idproduto e name alterado -->

<a class="btn btn-primary btn-xs" name="alterar" href="carrinho.php?alterar={BASE64}&qtde[]={QUANTIDADE PADRAO}" id="alterar_{BASE64}">
<-- id adicionado com padrão alterar_ -->

<script>

$(document).ready(function() {
  $('input[name=qtde]').change(function() {
  id = $(this).attr(idproduto);
  url = 'carrinho.php?alterar='+id+'&qtde[]='+$(this).val();
  $("#alterar_"+id).attr("href", url);
  });
});

</script>
                                    
12.01.2016 / 15:58
-2

You can not use the $_GET when there is method="post" in your form.

    
12.01.2016 / 15:01