Ir para conteúdo

POWERED BY:

Arquivado

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

marciarf

enviar array via get

Recommended Posts

socorro

preciso urgentemente resolver uma questao.

preciso enviar um array via GET.

problema: nao estou conseguindo

na verdade o que ocorre é, envio atraves de POST, values escolhidos em dropdownlists, para um arquivo. neste arquivo capturo esses valores em um array e preciso devolver esses valores para o arquivo original para deixar as escolhas selecionadas.

já tentei com urlencode e serialize e depois urldecode e unserialize mas nao consigo abrir o array com os devidos valores no arquivo original

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom hinom

este é o select do form que envio via post para outro arquivo

<SELECT NAME="Make<?php echo $num0;?>" onChange="fillSelectFromArray(this.form.Team<?php echo $num0;?>,

((this.selectedIndex == -1) ? null : team[this.selectedIndex-1]));">
<OPTION VALUE="-1">Selecione
<OPTION VALUE="sacos">sacos
<OPTION VALUE="pilha">pilha-blocos
<OPTION VALUE="baia">baia
<OPTION VALUE="barras-ferragem">barras-ferragem
<OPTION VALUE="aco_cort_dob">aço cortado/dobrado
<OPTION VALUE="equipamento">equipamento
<OPTION VALUE="almox_ferramentas">almoxarifado ferramentas
<OPTION VALUE="almoxarifado">almoxarifado
<OPTION VALUE="espaco">espaço próprio
</SELECT>
Note que tenho uma quantidade de dropdowlist variável pq dependerá da quantidade de elementos $num0 que tenho um banco de dados. Se tiver 20 valores no bd, terei 20 dropdownlist nomeadas como Make1, Make2, etc. Seus values entao sao enviados via POST pra outro arquivo. Nele eu faço:

$sqlnum="SELECT nomeprojeto,numrecurso,nomerecurso,unidrecurso FROM tab_recursos" or die(mysql_errno());
   $resnum=mysql_query($sqlnum, $db);
   $linhas=mysql_num_rows($resnum);
   
	$x=0;
	while($num=mysql_fetch_array($resnum)){
	  $num_rec=$num['numrecurso'];

	  $values1[$x] = $_POST['Make'.$num_rec];
	  $valor0=array($values1[$x]);
	  $valor=serialize($valor0);
	  $x++;
	}
ou seja crio um array [$num_rec é igual ao $num0] dentro do while pra capturar todos os valores enviados de Make.$num_rec.

Dai quero enviar esse array de volta ao arquivo original e tenho feito via GET como:

 

header("Location:area_insumos.php?nome=".$nome."&valor=".$valor);

Esse formato que você vê é um dos muitos que já tentei, mas nenhum faz exatamente o que eu quero.

A intenção é receber esses valores, compara-los com os values do select no arquivo original e deixar seleciona a opcao do usuário nas dropdownlist.

Entendeu? Espero que sim...

 

poderia mostrar como está fazendo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi o motivo de fazer isso:

 

$values1[$x] = $_POST['Make'.$num_rec];
	  $valor0=array($values1[$x]);
	  $valor=serialize($valor0);

 

a url aparentemente nao tem nada de errado

 

header("Location:area_insumos.php?nome=".$nome."&valor=".$valor);

o correto mesmo é codificar usando URL_ENCODE

 

header("Location:area_insumos.php?nome=" . url_encode( $nome ) . "&valor=" . url_encode( $valor ));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, na verdade essa é somente a parte de um problema maior

Talvez com o problema macro seja mais facil resolver....

O problema é o seguinte:

tenho um arquivo chamado area_insumos.php onde tenho um form com combobox dinamico. é uma tabela contendo o nome de um material, o combobox dinamico sendo uma combo onde o usuário escolhe uma forma de armazenagem e a outra abre com as opcoes de dimensoes (por ex: o usuário escolhe forma de armazenagem "sacas", a segundo combo se abre com opcoes de tamanhos para sacas - sacos cimento, cal etc)A a quantidade de itens dependerá da quantidade armazenada em um banco de dados.

Concluindo todas as escolhas, ao enviar os dados, estes vao via POST para outro arquivo calculos_rec.php que os recebe e faz calculos para determinar o espaço (área) que terá que estar disponível para estes materias em um canteiro.

Inicialmente imagino uma obra com 10 meses, p ex, e estes cálculos sao baseados no pico de estoque de cada material para esse periodo e na escolha da forma de estocagem escolhida pelo usuário, ou seja quantidade de material e espaco que usará com aquele tipo de estocagem.

Ótimo, isso funciona assim se o usuário nao dividir essa obra em fases menores - o que pode acontecer em caso de pouco espaço.

Nesse caso, teoricamente o usuário teria que fazer todas as escolhas novamente em area_insumos.php e no arquivo calculos_rec.php. seriam feitas querys considerando as datas das fases para encontrar o pico de estoque em cada uma. Minha intencao é evitar que o usuário tenha que refazer as escolhas cada vez que resolva dividir em maisuma fase, já que elas nao mudarão, ou seja, fará tudo novamente apenas para apertar o botao Enviar.

Tentei fazer de uma maneira que a escolha do usuário ficasse selecionada(selected), por isso é que tentei enviar essa matriz de um arquivo pra outro (i.e. do arquivo area_insumos.php via POST para calculos_rec.php e desse de volta via GET), pq dai o usuário simplesmente clicaria no botao Enviar. Nao consegui uma vez que eu teria que enviar as escolhas para o arquivo calculos_rec e depois voltar com eles para area_insumos para ficarem selecionados. Tentei via GET e nao consegui; me sugeriram SESSION mas nao sei se funcionará exatamente por se tratar de uma combo dinâmica.

Pensei em um include desse arquivo calculos_rec no arquivo fases para que sempre que o usuário entrar com uma data para uma fase, roda-lo novamente e refazer os calculos. O problema é que pra isso preciso das escolhas da forma de armazenagem e das dimensoes.

Será que alguém vai entender meu caso?

Espero muito que sim...

 

 

 

não entendi o motivo de fazer isso:

 

$values1[$x] = $_POST['Make'.$num_rec];
	  $valor0=array($values1[$x]);
	  $valor=serialize($valor0);

 

a url aparentemente nao tem nada de errado

 

header("Location:area_insumos.php?nome=".$nome."&valor=".$valor);

o correto mesmo é codificar usando URL_ENCODE

 

header("Location:area_insumos.php?nome=" . url_encode( $nome ) . "&valor=" . url_encode( $valor ));

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao entendi muito bem mas acho que seria viável utilizar ajax para setar variáveis sessão.

 

desse modo não precisaria fazer tantas voltas pra enviar dados.

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.