Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kari0ca

[Resolvido] Formulario, checkbox e array

Recommended Posts

Bom dia, antes de mais deixem-me parabenizar pelo forum, muito organizado e instrutivo.

 

Eu estou com um problema em um script que estou desenvolvendo, a ideia é a seguinte:

 

quero fazer uma especie de carrinho de compras, a parte de armazenar os "produtos" em variaveis de sessao está feita, agora o meu problema é quando mostro os dados para confirmação, disponho os dados em uma tabela com checkbox, e o usuario confirma o que quer, nao estou a obter o array com os códigos do outro lado.

Tentei passar os parametros por _GET, para ver os dados, e realmente ele passa, mas qdo eu tento "receber" os dados, nao obtenho nada.

 

por exemplo, a string de parametros é a seguinte: .../solicitacao.php?modelo=028&modelo=029

onde obtenho os codigos de modelo, qdo eu faço o _GET['modelo'] só obtenho o ultimo valor

 

nao estou em casa no momento, assim que chegar posto o código para vcs verem melhor,

 

Desde ja agradeço as resposta.

 

Higor Grilo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode passar os parâmetros assim:

 

../solicitacao.php?modelo=028;029;030;031;032;033;034

 

E transformar em Array com a função split():

 

<?
$modelo = $_GET["modelo"];
$modelo = split(";", $modelo);
echo $modelo[3];
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, bem-vindo ao iMasters! E agradecemos o reconhecimento e a parabenização. :D

 

O ideal é passar essas ionformações pelo método POST mesmo. Para que os valores sejam, recebidos como array, crie os cheboxes desta forma:

 

[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="1" />
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="2" />
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="3" />

 

 

Veja o [] após o nome do campo. Desta forma, $_POST['opcoes'] torna-se um array, sendo possível resgatar os dados com um loop foreach, por exemplo.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode passar os parâmetros assim:

 

../solicitacao.php?modelo=028;029;030;031;032;033;034

 

E transformar em Array com a função split():

 

<?
$modelo = $_GET["modelo"];
$modelo = split(";", $modelo);
echo $modelo[3];
?>
Marhault, agradeço a resposta, mas não sei se era mesmo isso que eu queria, o formulario transforma os valores assim? se transfomar assim eu tenho q fazer o explode qdo for separar os dados, certo?

 

Primeiramente, bem-vindo ao iMasters! E agradecemos o reconhecimento e a parabenização. :D

 

O ideal é passar essas ionformações pelo método POST mesmo. Para que os valores sejam, recebidos como array, crie os cheboxes desta forma:

 

[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="1" />
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="2" />
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="3" />

 

 

Veja o [] após o nome do campo. Desta forma, $_POST['opcoes'] torna-se um array, sendo possível resgatar os dados com um loop foreach, por exemplo.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Beraldo, eu tenho certeza que defini a variavel assim com os '[]', para que seja um array, e eu consigo acessar a ele como um array, porém só obtenho os valores da ultima checkbox (se o codigo for 029, acesso com modelo[0] e tenho o valor 0, para modelo[1] tenho 2 e para modelo[2] tenho 9. mesmo quando passo 2 valores no endereço: .../solicitacao.php?modelo=028&modelo=029), quando eu chegar em casa vejo isso e esclareço melhor com o código,

 

Muito grato pelas respostas

 

Higor Grilo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos esperar você postar o código, então.

 

Enquanto isso, montei um exemplo aqui que funcionou corretamente. Talvez ele o ajude a encontrar o erro em seu código:

 

Formulário (form.html)

[color= #00bbdd;]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http-~~-//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
[url="http-~~-//december.com/html/4/element/html.html"]<html[/url] xmlns="http-~~-//www.w3.org/1999/xhtml">
[url="http-~~-//december.com/html/4/element/head.html"]<head>[/url]
[url="http-~~-//december.com/html/4/element/title.html"]<title>[/url]Teste</title>
</head>
[url="http-~~-//december.com/html/4/element/body.html"]<body>[/url]
[url="http-~~-//december.com/html/4/element/form.html"]<form[/url] method="post" action="acao.php">
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="123" /> 123
[url="http-~~-//december.com/html/4/element/br.html"]<br[/url] />
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="456" /> 456
[url="http-~~-//december.com/html/4/element/br.html"]<br[/url] />
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="checkbox" name="opcoes[]" value="789" /> 789
[url="http-~~-//december.com/html/4/element/br.html"]<br[/url] />[url="http-~~-//december.com/html/4/element/br.html"]<br[/url] />
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="submit" value="Enviar" />
</form>
</body>
</html>

 

acao.php

PHP
<?php[/color]

 

echo "<h1>Print_r()</h1>";

print_r($_POST['opcoes']);

 

echo "<h1>Com foreach()</h1>";

 

foreach ($_POST['opcoes'] as $k => $v)

{

        echo $k . " => " . $v . "<br />";

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Beraldo, o seu codigo resolveu o meu problema.

Eu penso que tinha 2 coisas erradas, mas para ja nao quero entender o porque disso, quero apenas que funcione.

 

os erros eram os seguintes:

qdo eu criava a checkbox

echo "<td><input type='checkbox' value='$num' id='modelo[]'>$num</td></tr>";
e quando eu ia ler os valores:

$array_mod[] = $_POST["modelo"];
foreach($array_mod as $mod){
echo "<br>modelo 1  = ".$array_mod[0].$array_mod[1].$array_mod[2].$array_mod[3].".";
echo "<br>modelo 1  = ".$mod.".";
nenhuma das formas, usando a variavel $array_mod ou variavel $mod

 

muitissimo obrigado pela ajuda http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

sempre que puder estarei ao dispor para resolver questoes vossas tambem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Beraldo, o seu codigo resolveu o meu problema.

Eu penso que tinha 2 coisas erradas, mas para ja nao quero entender o porque disso, quero apenas que funcione.

 

os erros eram os seguintes:

qdo eu criava a checkbox

echo "<td><input type='checkbox' value='$num' id='modelo[]'>$num</td></tr>";
e quando eu ia ler os valores:

$array_mod[] = $_POST["modelo"];
foreach($array_mod as $mod){
echo "<br>modelo 1  = ".$array_mod[0].$array_mod[1].$array_mod[2].$array_mod[3].".";
echo "<br>modelo 1  = ".$mod.".";
nenhuma das formas, usando a variavel $array_mod ou variavel $mod

 

muitissimo obrigado pela ajuda http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

sempre que puder estarei ao dispor para resolver questoes vossas tambem.

 

Olá amigos,

 

Tou postando aki novamente pois vi o código proposto e não consegui entender como passar o id atual:

 

Exemplo: Tenho 3 radio buttons com o mesmo name:

 

<input type="radio" name"RdBtnResp1" Value="Um" id="1">Otimo;

<input type="radio" name"RdBtnResp1" Value="Dois" id="2">Bom;

<input type="radio" name"RdBtnResp1" Value="Três" id="3">Regular;

 

Queria passar para o o outro fom, além do nome, o id que estivesse marcado, pois precisaria saber do id também para outra funcionalidade tratando as variações num if ou swictch...

 

Exemplo: if RdBtnResp1==Um{

GravaNoBancoSoOId=1

};

if RdBtnResp1==Dois{

GravaNoBancoSoOId=2

};

if RdBtnResp1==TrÊs{

GravaNoBancoSoOId=3

};

 

Alguém pode complementar a explicação ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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