Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
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.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];
}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];
}
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++):