Jump to content
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!

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other 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;

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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];
}

Share this post


Link to post
Share on other 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];
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.