Ir para conteúdo

Arquivado

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

Marcos Geam

Recuperar array post varios indices

Recommended Posts

galera tenho um form que envia 3 campos (id, procedimento, preco) porém é um form que pode enviar mais de um indice ou seja, ele pode enviar no mesmo post varios procedimentos preciso que retorne assim (isso é só o debug):

//desta mesma forma deverá ser o resultado porém so consigo exibir isso com o print_r mas preciso em string:

Array(    [procedimento_id] => Array        (            [0] => 1            [1] => 2        )    [procedimento_nome] => Array        (            [0] => Alisamento capilar            [1] => Botox        )    [procedimento_preco] => Array        (            [0] => 225.00            [1] => 450.00        ))

HTML

 

<input type="hidden" name="procedimento_id[ ]">

<input type="text" name="procedimento_nome[ ]">

<input type="text" name="procedimento_preco[ ]">

 

estava tentando dar saida asssim mas nao está funfando:

$post = filter_input_array(INPUT_POST, FILTER_DEFAULT);

 

foreach ($post as $valor) {

 

echo $valor['procedimento_id'];

echo $valor['procedimento_nome'];

echo $valor['procedimento_preco'];
}

queria que retornasse assim caso ele enviasse mais de um produto:

procedimento_id: 1procedimento_nome: Alisamento capilarprocedimento_preco: 225.00procedimento_id: 2procedimento_nome: Botoxprocedimento_preco: 450.00

aceito sugestão, valeu!

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera isso me retorna exatamente o que quero, porem tenho duvidas sobre se desta forma nao sobrecarrega o loop pois é loop sobre loop, recomenda se fazer isto?

 

foreach (array($post['procedimento_id']) as $val1):
foreach (array($post['procedimento_nome']) as $val2):
for ($i = 0; $i < count($val1); $i++):

echo $val1[$i] . "=>" . $val2[$i] . "<br>";

endfor;
endforeach;
endforeach;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria diferente:

$array_ids = $_POST['procedimento_id'];

foreach($array_ids as $key => $id){
    $id = $id;
    $nome = $_POST[$key]["procedimento_nome"];
    $preco = $_POST[$key]["procedimento_preco"];
}

Testa e verifica se te atende.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maike Desse jeito da certo! otimo porém só corrigi seu codigo colocando o indice no final do post ficou assim;

 

$array_ids = $_POST['procedimento_id'];

foreach ($array_ids as $key => $id) {
echo $id = $id;
echo $nome = $_POST["procedimento_nome"][$key];
echo $preco = $_POST["procedimento_preco"][$key];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim realmente me equivoquei, que bom que conseguiu creio que assim fique um pouco mais limpo há outras maneiras de se fazer mas por enquanto esta é a melhor que encontrei para o caso.

Qualquer dúvidas estamos por ae.

 

Maike Desse jeito da certo! otimo porém só corrigi seu codigo colocando o indice no final do post ficou assim;

 

$array_ids = $_POST['procedimento_id'];

foreach ($array_ids as $key => $id) {
echo $id = $id;
echo $nome = $_POST["procedimento_nome"][$key];
echo $preco = $_POST["procedimento_preco"][$key];
}

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.