Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

formulario nao leva o get

20-07-2015 09:45

bom dia. tenho um formulario em modal bootstrap e eh estranho que ele nao leva oque esta no GET. a URL deveria ser ?par=ID o esse ID vem do banco. o estranho eh que a URL fica soh ? . onde estou errando ?

<?php $query = "SELECT * FROM produtos WHERE disponivel=1"; $prod = mysql_query($query); while($linha = mysql_fetch_array($prod)) { ?> <div class="modal fade" id="myModal<?php echo $linha['id']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title" id="myModalLabel">Retirar itens</h4> </div> <div class="modal-body"> <div class="form-group"> Deseja retirar alguma coisa da <?php echo $linha['nome']; ?> ? <form action="?par=<?php echo $linha['id']; ?>" method="get"> aqui ainda nao tem nada mesmo. </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button> <button type="submit" class="btn btn-primary">Salvar</button> </div> </form> </div> </div> </div> <?php } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 11:12

Não sei se foi devido a alguma mudança na regra do HTML, mas tenta dessa forma:

<input type="hidden" name="par" value="<?php echo $linha['id']; ?>">

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 11:16

eu precisava passar via get. entao terei que alterar para post?


estou tentando mudar o botao para um link
<a href="#" role="button" class="btn btn-success btn-large">Adcionar</a>

ai o a href eh o ?par=$id ....
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 11:32

fiz do jeito que voce passou e deu certo. Obrigado

agora tenho um outro select dentro com varios itens, cada um tem um checkbox. preciso passar os dados selecionados junto. como fazer? array?
esse eh o select
<?php $consulta = "SELECT * FROM ingredientes WHERE disponivel=1"; $qconsulta = mysql_query($consulta); while($rw = mysql_fetch_array($qconsulta)) { echo "<input type=\"checkbox\" name=\"retirar\" value=\"{$rw['nome']}\">{$rw['nome']}<br>"; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 11:33

Isso mesmo. O name do input deve estar no formato:

<input type="checkbox" name="campo[]"..

Ai você cria um foreach para capturar todos os valores selecionados do input.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 11:56

legal. to me perdendo com o foreach

esse select seleciona todos os ingredientes para serem retirados.
acho que fiz o foreach errado
<?php $consulta = "SELECT * FROM ingredientes WHERE disponivel=1"; $qconsulta = mysql_query($consulta); while($rw = mysql_fetch_array($qconsulta)) { echo "<input type=\"checkbox\" name=\"retirar[]\" value=\"{$rw['nome']}\">{$rw['nome']}<br>"; } foreach($retirar as $valor){ echo "<input type=\"hidden\" name=\"retirar\" value=\"$valor\">"; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 12:36

Imagino que você precisa capturar todos os valores selecionados para salvar no banco de dados, não é?

<?php if(isset($_POST['submit'])) { $val = array(); foreach($_POST['retirar'] AS $ingr) { $val[] = $ingr; } echo implode(",", $val); // PARA O BD } ?> <form action="teste.php" method="post"> <input type="checkbox" name="retirar[]" value="1" /> <input type="checkbox" name="retirar[]" value="2" /> <input type="submit" name="submit"> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 12:58

na verdade nessa etapa ainda nao. o usuario escolhe o produto e vai abrir um modal com todos estes checkboxes que sao os ingredientes para retirar.
esse produto escolhido e esses ingredientes pra retirar serao armazenados inicialmente em variaveis de sessao. é um carrinho de compras na verdade. o produto ta adicionando normal no carrinho.
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 13:34

esse que voce postou deu certo, soh que ele sempre utiliza o array. teria que ser um array para cada sessao.

<?php if(isset($_SESSION['venda'])){ }else{ $_SESSION['venda'] = array(); } if(isset($_POST['par'])){ $produto = $_POST['par']; $_SESSION['venda'][$_POST[par]] = 1; $val = array(); foreach($_POST['retirar'] AS $ingr) { $val[] = $ingr; } $retirados = implode(",", $val); } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 13:41

Não entendi muito bem. Mas se quer fazer com base na session pode usar o session_id

echo session_id();

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 13:47

o par eh o id do produto que vem do banco.
nao entendi o uso do session_id
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 13:59

Eu não entendi ainda.
Você tem uma lista de itens. O usuário seleciona os itens que deseja e forma uma nova lista dos selecionados.
Onde entra a SESSION?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 14:30

tenho uma lista de produtos com eles vindo do banco. quando adiciono 1 produto ele coloca ele em uma lista com uma variavel de sessao atribuida. e vai fazendo a lista. gostaria de alem de adicionar o produto, poder adicionar uma retirada de ingrediente por exemplo em cada produto.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 15:19

Porque a cada envio dos dados do checkbox, você não armazena tudo em uma SESSION?

<?php session_start(); if(isset($_POST['submit'])) { $val = array(); foreach($_POST['retirar'] AS $ingr) { $val[] = $ingr; } $_SESSION['produto_'.$_POST['produto']] = implode(",", $val); // PARA O BD } ?> <form action="teste.php" method="post"> <input type="text" name="produto" value="produto1"> <input type="checkbox" name="retirar[]" value="1" /> <input type="checkbox" name="retirar[]" value="2" /> <input type="submit" name="submit"> </form>

Com esse exemplo em uma página qualquer dentro da mesma session você pode chamar a lista assim:

echo $_SESSION['produto_produto1']; // BASEADO NESSE FORMULÁRIO DE EXEMPLO

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 15:43

até deu certo. mas ele sempre adiciona o ultimo array de opções escolhidos

se eu escolho 1 x frango e marco sem cebola. OK
depois adiciono mais um x salada sem ovo. todos os produtos ficam sem ovo.


if(isset($_POST['par'])){ $produto = $_POST['par']; $_SESSION['venda'][$_POST[par]] = 1; $val = array(); foreach($_POST['retirar'] AS $ingr) { $val[] = $ingr; } $_SESSION['produto_'.$_POST['produto']] = implode(",", $val); // PARA O BD }

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 16:56

Mas ai no caso os itens que já estiverem sido marcado antes, devem checar o checkbox, correto?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 17:11

não porque cada inserção de produto no carrinho, é um produto diferente com diferentes opções
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

20-07-2015 20:01

Veja esse exemplo com duas SESSIONS

<?php session_start(); if(isset($_POST['submit'])) { $val = array(); foreach($_POST['retirar'] AS $ingr) { $val[] = $ingr; } $_SESSION['produto_'.$_POST['produto']] = implode(",", $val); // PARA O BD } echo "produto1: ".@$_SESSION['produto_produto1']."<br />"; echo "produto2: ".@$_SESSION['produto_produto2']."<br />"; ?> <form action="teste.php" method="post"> <input type="text" name="produto" value="produto1"> batata <input type="checkbox" name="retirar[]" value="batata" /> cebola <input type="checkbox" name="retirar[]" value="cebola" /> <input type="submit" name="submit"> </form> <form action="teste.php" method="post"> <input type="text" name="produto" value="produto2"> batata <input type="checkbox" name="retirar[]" value="batata" /> cebola <input type="checkbox" name="retirar[]" value="cebola" /> <input type="submit" name="submit"> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

20-07-2015 20:54

nao deu certo. continua pegando o ultimo setado. e se eu pegar essa acao e cadastrar em uma tabela temporaria? depois, se o cliente realmente fechar o pedido, ai sim vai pra tabela pedidos, nao eh mais facil ?
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

21-07-2015 09:59

entendi sua logica. na verdade tem que criar uma outra variavel session para cada produto
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

21-07-2015 11:30

Sim. Você tem que fazer a SESSION baseado em cada produto.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

21-07-2015 14:08

resolvi fazer diferente.
vou puxar os ingredientes de uma coluna da tabela, jogar em um array vou pegar esse array e cada item vai ser um checkbox.

ai depois, vou passar via GET o id do produto e os checkboxes marcados.


for($i =0; $i < $cont; $i++){ echo "<input type=\"checkbox\" name=\"retirar[]\" value=\"{$ingred[$i]}\" onClick=\"addToList(this, 'retirados')\"> {$ingred[$i]}<br>"; } echo "<input type=\"hidden\" name=\"retirados\" class=\"frmCad_area\" id=\"retirados\" value=\"{$retirar['retirados']}\">";

agora nao to conseguindo enviar os retirados.
<a href="?par=<?php echo $linha['id']; ?>&retirados=<?php echo $retirar['retirados']; ?>" role="button" class="btn btn-primary">Salvar</a>

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

21-07-2015 14:40

ficou assim. soh to com dificuldade de passar esse array de selecionados via GET.

<form action="" method="get"> Deseja retirar alguma coisa da <?php echo $linha['nome']; ?> ? <br> <br> <?php $ingid = $linha['id']; $consulta = "SELECT ingredientes FROM produtos WHERE id=$ingid"; $qconsulta = mysql_query($consulta); $consulta2 = "SELECT * FROM ingredientes"; $qconsulta2 = mysql_query($consulta2); while($rw = mysql_fetch_array($qconsulta)) { $ingred = explode(",", $rw['ingredientes']); $cont = count($ingred); //echo "<input type=\"checkbox\" name=\"retirar[]\" value=\"{$rw['nome']}\" onClick=\"addToList(this, 'retirados')\">{$rw['nome']}<br>"; } for($i =0; $i < $cont; $i++){ echo "<input type=\"checkbox\" name=\"retirar[]\" value=\"{$ingred[$i]}\" onClick=\"addToList(this, 'retirados$ingid')\"> {$ingred[$i]}<br>"; } // echo "<input type=\"text\" name=\"retirados$ingid\" class=\"frmCad_area\" id=\"retirados$ingid\" value=\"{$retirar['retirados']}\">"; echo "<textarea name=\"retirados$ingid\" cols=\"50\" rows=\"5\" class=\"frmCad_area\" id=\"retirados$ingid\" readonly=\"readonly\">{$retirar['retirados']}</textarea>"; ?> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button> <a href="?par=<?php echo $linha['id']; ?>&retirados<?php echo $linha['id']; ?>=<?php echo $retirar['retirados']; ?>" role="button" class="btn btn-primary">Salvar</a> </div> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: formulario nao leva o get

21-07-2015 14:51

Qual dificuldade? O modo de captura é o mesmo que o post, só que usando o $_GET
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 383
Sexo: Masculino
Localização: criciuma

Re: formulario nao leva o get

21-07-2015 15:25

a dificuldade ta em passar o array dos ingredientes para a URL
coloquei assim na URL e nao passou

<a href="?par=<?php echo $linha['id']; ?>&retirados<?php echo $linha['id']; ?>=<?php echo $retirar['retirados']; ?>" role="button" class="btn btn-primary">Salvar</a>

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado