Jump to content
Sign in to follow this  
mauriciorrp

Receber dados de uma formulário dinamico

Recommended Posts

Olá amigos, como vão ?

 

Estou enviando dados de um formulário dinâmico e não sei como recebê-los.

 

Página 1 (funcionando)

 

<?php

session_start();
include "config.php";
include "/home/wwwfisic/public_html/sistema/restrito2/functions.php";
session_checker();
echo "<div style='text-align:right'>Você logou como <strong>". $_SESSION['nome'] ." ". $_SESSION['sobrenome'] ."</div></strong> <br />";
echo "<div style='text-align:right'><a href=\"logout.php\">Sair</div></a>";
echo "<hr />";
include "menu.html";
echo"
<div align='center'>
<form method='POST' action='/sistema/restrito2/cadastra_treino2.php'>
Por favor preencha o cadastro abaixo informando o nome do treino e a quantidade de exercícios para o mesmo.
<br><br>
<table border='1' width='70%'>
<tr>
<td>
<p align='center'>Nome do Treino</td>
<td>
<p align='center'>Número total de exercícios</td>
</tr>
<tr>
<td>
<p align='center'><input type='text' name='treino_nome' size='25'> </td>
<td>
<p align='center'><input type='text' name='treino_numero_exercicios' size='11'></td>
</tr>
</table>
<table border='1' width='40%'>
<tr>
</tr>
</table></div>
<input type='submit' value='Continuar' name='B1'></div>
</form>
"
?>
página 2 (funcionando)
<?php
session_start();
include "config.php";
include "/home/wwwfisic/public_html/sistema/restrito2/functions.php";
session_checker();
echo "<div style='text-align:right'>Você logou como <strong>". $_SESSION['nome'] ." ". $_SESSION['sobrenome'] ."</div></strong> <br />";
echo "<div style='text-align:right'><a href=\"logout.php\">Sair</div></a>";
echo "<hr />";
include "menu.html";
$treino_numero_exercicios = $_POST["treino_numero_exercicios"];
$treino_nome = $_POST["treino_nome"];
echo"
<form method='POST' action='/sistema/restrito2/cadastra_treino3.php'>
<input type='hidden' name='treino_nome' value='$treino_nome'>
<div align='center'>
<table border='1' width='70%'>
<tr>
<td width='225' align='center'>Nome do exercício</td>
<td width='227' align='center'>Repetições</td>
<td align='center'>Carga</td>
</tr>";
$i = 1;
while( $i <= $treino_numero_exercicios){
echo "
<tr>
<td width='225'>
<p align='center'><input type='text' name='treino_exercicio$i' size='30'></td>
<td width='227'>
<p align='center'><input type='text' name='treino_repeticoes$i' size='30'></td>
<td>
<p align='center'><input type='text' name='treino_carga$i' size='30'></td>
</tr>
";
$i++;
}
echo"
</table></div><br><br>
<input type='submit' value='Continuar' name='B1'></div>
</form>
"
?>
Página 3
Nesta página gostaria apenas de pegar os valores vindos do formulário dinamico e exibir (fazendo um loop) na página.
Resumindo:
Primeira página: o usuário digita o número de campos
Segunda página: carrega para o usuário exatamente a quantidade de campos digitada anteriormente.
Terceira página: Exibi na tela através de uma tabela os dados digitados anteriormente. Está ultima página não sei como fazer.
Alguém poderia me ajudar ? Muito obrigado.

Share this post


Link to post
Share on other sites

Troque:

 

 

$i = 1;
while( $i <= $treino_numero_exercicios){
  
  
  
  echo "




<tr>
<td width='225'>
<p align='center'><input type='text' name='treino_exercicio$i' size='30'></td>
<td width='227'>
<p align='center'><input type='text' name='treino_repeticoes$i' size='30'></td>
<td>
<p align='center'><input type='text' name='treino_carga$i' size='30'></td>
</tr>


  
  
  ";
  $i++;
}

 

 

Por:

 

 

 

$i = 1;
while( $i <= $treino_numero_exercicios){
  
  
  
  echo "




<tr>
<td width='225'>
<p align='center'><input type='text' name='treino_exercicio[$i]' size='30'></td>
<td width='227'>
<p align='center'><input type='text' name='treino_repeticoes[$i]' size='30'></td>
<td>
<p align='center'><input type='text' name='treino_carga[$i]' size='30'></td>
</tr>
 

 
  
  
  ";
  $i++;
}

 

Para resgatar use:

 

 

foreach($_POST['treino_exercicio'] as $ind=>$val){
    echo $ind.'<br />'.$_POST['treino_repeticoes'][$ind].'<br />'.$_POST['treino_carga'][$ind];
}

Share this post


Link to post
Share on other sites

Amigo, funcionou, muito obrigado pelo apoio.

 

Só mais uma questão (se puder me ajudar):

 

Agora que printei na tela para o usuário, preciso guardar estas informações em variáveis para depois (em outra página) inserir no banco.

 

Como guardo as informações recebidas em um formulário hidden para depois passar para outra página ?

 

Sem querer abusar, depois de passar na outra página, ainda terei que inserir no banco de dados, se puder me informar como faria essas duas etapas:

 

1 - receber tudo em campos hidden

2 - recebendo tudo dos campos hidden em outra página e adicionando no banco posteriormente.

 

Senão der para ajudar tudo bem pois já ajudou bastante na questão acima.

 

Grande abraço.

Share this post


Link to post
Share on other sites

A lógica é exatamente a mesma:

foreach($_POST['treino_exercicio'] as $ind=>$val){
    echo '<input type="hidden" name="treino_exercicio['.$ind.']" value="'.$ind.'" />';
    echo '<input type="hidden" name="treino_repeticoes['.$ind.']" value="'.$_POST['treino_repeticoes'][$ind].'" />';
    echo '<input type="hidden" name="treino_carga['.$ind.']" value="'.$_POST['treino_carga'][$ind].'" />';
}

Share this post


Link to post
Share on other sites

Amigo, deu certo. Muito obrigado.

 

Se puder me ajudar em uma última dúvida.

 

Na última página (onde faço a inserção no banco de dados) a lógica seria a mesma ? Tentei e não deu certo, olha o que eu fiz:

 

foreach($_POST['treino_exercicio'] as $ind=>$val){
echo "$insere = "INSERT INTO treino(usuario_id,treino_exercicio,treino_repeticoes,treino_carga) VALUES ('$usuario_id','.$_POST['treino_exercicio'][$ind].', '.$_POST['treino_repeticoes'][$ind].','.$_POST['treino_carga'][$ind]'";
}
Saberia dizer onde estou errando ?
Grande abraço.

Share this post


Link to post
Share on other sites

Falta você executa a query em algum lugar... ali é apenas um string.

mysql_query("INSERT INTO..);
//ou
$pdo->query("INSERT INTO...);

Share this post


Link to post
Share on other sites
foreach($_POST['treino_exercicio'] as $ind=>$val){

echo "$insere = "INSERT INTO treino(usuario_id,treino_exercicio,treino_repeticoes,treino_carga) VALUES ('$usuario_id','.$_POST['treino_exercicio'][$ind].', '.$_POST['treino_repeticoes'][$ind].','.$_POST['treino_carga'][$ind]'";

}


mysql_query ($insere) or die ("Error in query: $query. ".mysql_error());



mysql_close();


tentei isso e deu o seguinte erro: Parse error: syntax error, unexpected 'INSERT' (T_STRING), expecting ',' or ';'

Share this post


Link to post
Share on other sites



foreach($_POST['treino_exercicio'] as $ind=>$val){
$insere = "INSERT INTO treino(usuario_id,treino_exercicio,treino_repeticoes,treino_carga) VALUES ('$usuario_id','".$_POST['treino_exercicio'][$ind]."', '".$_POST['treino_repeticoes'][$ind]."','".$_POST['treino_carga'][$ind]."'";
mysql_query ($insere) or die ("Error in query: $query. ".mysql_error());
}



Share this post


Link to post
Share on other sites

Amigo, muito obrigado pela ajuda.

 

Abaixo sintaxe que funcionou perfeitamente:

 

foreach($_POST['treino_exercicio'] as $ind=>$val){
$insere = "INSERT INTO treino(usuario_id,treino_exercicio,treino_repeticoes,treino_carga) VALUES ('1','".$_POST['treino_exercicio'][$ind]."', '".$_POST['treino_repeticoes'][$ind]."','".$_POST['treino_carga'][$ind]."')";
mysql_query ($insere) or die ("Error in query: $query. ".mysql_error());
}
mysql_close();
Vou colocar como resolvido.
Abração.

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
Sign in to follow this  

  • Similar Content

    • By victorhupo
      Eu tenho um código html e quero que a partir de um formulário o javascript modifique o conteúdo dele porem tenho um conhecimento raso.
       o código seria esse.
      <textarea> <div class="separator" style="clear: both; text-align: center;"> <a href="https://1.bp.blogspot.com/-TDuaU9uqbks/XVQ-Oj0THFI/AAAAAAAAEJw/mMdKEcvI-LwDoTVkcam8OVPse77LndSowCLcBGAs/s1600/S01E08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="901" data-original-width="1600" src="https://1.bp.blogspot.com/-TDuaU9uqbks/XVQ-Oj0THFI/AAAAAAAAEJw/mMdKEcvI-LwDoTVkcam8OVPse77LndSowCLcBGAs/s1600/S01E08.png" /></a></div> </textarea> eu preciso que a partir do link q o usuário colocar no formulário ele substitua esse link de imagem pelo que foi colocado na tabela. alguém tem alguma solução?
    • By Aureo Almeida
      Possuo um formulário que está repassando parte dos dados que desejo enviar. Ele busca o resultado de três consultas e duas delas dão opções de seleção para  o usuário em input radio.
      A primeira busca informações de produtos selecionados a partir de um parâmetro recebido via post. Este mesmo parâmetro também estabelece um critério para as outras duas consultas.
      Todas elas funcionam adequadamente, sem problemas. A questão é que ao enviar o formulário somente os dois parâmetros que estão presentes em inputs hidden são enviados. Os dois inputs radio, que são preenchidos de acordo com determinados critérios, não.
      Este é o código do formulario:
      <form action="carrinho.php" method="post"> <?php //Recebe a variavel idproduto da página do produto $sub_id = $_POST['idproduto']; $sql = "SELECT * FROM psd_produtos Where prd_id = '$sub_id'"; $stmt = $conn->prepare($sql); $stmt->execute(); $dados= $stmt->fetchAll(PDO::FETCH_OBJ); foreach ($dados as $detProdutos): $prdid = $detProdutos->prd_id; $nome= $detProdutos->prd_nome; $valor = $detProdutos->prd_valor; $novovalor = number_format($valor, 2, ',', '.'); $quantidade = $detProdutos->prd_estoque; echo" <h2>PREÇO: R$ $novovalor</h2><br/> <input type='hidden' name='id' value='$prdid'> <input type='hidden' name='acao' value='add'> "; endforeach; $sql1 = "SELECT * FROM psd_cores WHERE prd_id = '$sub_id'AND crs_quantidade != '0'"; $stmt1 = $conn->prepare($sql1); $stmt1->execute(); $dados1= $stmt1->fetchAll(PDO::FETCH_OBJ); foreach ($dados1 as $prodCores): if($quantidade!= 0){ echo" <input type='radio' name='cor' id='cor' value='$prodCores->crs_cores' checked='checked'> $prodCores->crs_cores <br> ";} endforeach; $sql2 = "SELECT * FROM psd_sabores WHERE prd_id = '$sub_id'AND sbr_quantidade != '0'"; $stmt2 = $conn->prepare($sql2); $stmt2->execute(); $dados2= $stmt2->fetchAll(PDO::FETCH_OBJ); foreach ($dados2 as $prodSabores): if($quantidade!= 0){ echo" <input type='radio' name='sabor' id='sabor 'value='$prodSabores->sbr_sabor' checked='checked'> $prodSabores->sbr_sabor <br> ";} endforeach; ?> <input type='submit' class='imput-comprar' value='Comprar'> </form> O estranho é que se eu fizer um formulário com uma das  consultas isoladamente da demais, os parâmetros são enviados. Exemplo que funciona:
      <form action="carrinho.php" method="post"> $sql2 = "SELECT * FROM psd_sabores WHERE prd_id = '$sub_id'AND sbr_quantidade != '0'"; $stmt2 = $conn->prepare($sql2); $stmt2->execute(); $dados2= $stmt2->fetchAll(PDO::FETCH_OBJ); foreach ($dados2 as $prodSabores): if($quantidade!= 0){ echo" <input type='radio' name='sabor' id='sabor 'value='$prodSabores->sbr_sabor' checked='checked'> $prodSabores->sbr_sabor <br> ";} endforeach;?> <br><input type='submit' class='imput-comprar' value='Comprar'> </form> O que pode estar impedindo que os valores das duas consultas após a primeira não sejam enviadas em conjunto, somente isoladamente?
    • By andre2654
      Boa tarde, eu preciso de ajuda de vocês, estou com um problema que é o seguinte, eu preciso que quando a pessoa clicar na lixeira, exclua essa linha do banco de dados, mas como posso fazer? perdoem a minha inexperiência, mas já busquei bastante a respeito e nada.
    • By kriskastro
      Oi, pessoal. Preciso de uma ajuda de vocês. 
      Tenho esse código de formulário de contato em um dos sites que gerencio e preciso colocar um redirecionamento de URL ao submeter o envio do formulário com sucesso. Atualmente ele só exibe "Mensagem enviada com sucesso!". Já tentei injetar essa função direto pelo javascript, porém as tentativas que fiz foram todas sem sucesso. Podem me ajudar com isso?
       
      A ideia seria enviar as pessoas para uma página de resposta que já desenvolvi.
      <form class="avia_ajax_form av-form-labels-visible avia-builder-el-123 el_after_av_hr avia-builder-el-last av-custom-form-color av-light-form" method="post" name="formhouse"> <fieldset> <p id="element_avia_1_1" class=" first_form form_element form_element_third"><label for="avia_1_1">Nome <abbr class="required" title="required">*</abbr></label> <input id="avia_1_1" class="text_input is_empty" name="nome" type="text" value="" /></p> <p id="element_avia_2_1" class=" form_element form_element_third"><label for="avia_2_1">E-Mail <abbr class="required" title="required">*</abbr></label> <input id="avia_2_1" class="text_input is_empty" name="email" type="text" value="" /></p> <p id="element_avia_3_1" class=" form_element form_element_third"><label for="avia_3_1">Telefone <abbr class="required" title="required">*</abbr></label> <input id="avia_3_1" class="text_input is_phone" name="telefone" type="text" value="" /></p> <p id="element_avia_4_1" class=" first_form form_element form_fullwidth av-last-visible-form-element"><label class="textare_label hidden textare_label_avia_4_1" for="avia_4_1">Mensagem <abbr class="required" title="required">*</abbr></label> <textarea id="avia_4_1" class="text_area is_empty" cols="40" name="mensagem" rows="7"></textarea></p> <p class="hidden"><input id="avia_5_1" class="hidden " name="avia_5_1" type="text" value="" /></p> <center id="msgErroHouse" style="color: red; display: none;">Erro ao enviar a mensagem, preencha todos os campos para continuar</center>&nbsp; <center id="msgShowHouse" style="display: none;">Mensagem enviada com sucesso!</center> <p class="form_element "><input name="avia_generated_form1" type="hidden" value="1" /> <input id="clica-botao-house" class="button" type="button" value="Enviar" /></p> </fieldset> </form> <script language="javascript"> function chama(){ var ret = hc_envia_mensagem(2923, document.formhouse.nome.value, document.formhouse.email.value, '', document.formhouse.telefone.value, document.formhouse.mensagem.value); if(document.formhouse.email.value.trim() != '' && document.formhouse.nome.value.trim() != ''){ jQuery('#msgErroHouse').hide(); jQuery('#msgShowHouse').show(); document.formhouse.nome.value = ''; document.formhouse.email.value = ''; document.formhouse.ddd.value = ''; document.formhouse.telefone.value = ''; document.formhouse.mensagem.value = ''; }else{ jQuery('#msgShowHouse').hide(); jQuery('#msgErroHouse').show(); } } setTimeout(function(){ jQuery('#clica-botao-house').on('click', function(){chama ()}); jQuery('[data-avia-form-id]').hide(); },100) </script>  
    • By duarte.php
      Boa noite, pessoal, estou fazendo meu tcc (nível técnico kkk) e preciso de ajuda com uma conexão com o banco.
       
      Fiz um formulário para consultar empréstimos em uma biblioteca através do rm (id) e exibir os dados que estão cadastrados neste rm. 
      Estou com dificuldades para que os dados sejam puxados e exibidos na página. 
       
      Esta é a parte que pede o RM no html
      <h4 class="title">Insira o seu RM: </h4> <input type="text" name="rm" class="form-control" required/>  
      Este é o código php
      <?php $rm = $_POST['rm']; include("conecta.php"); $busca = mysql_query("SELECT * FROM tb_locador WHERE rm='$rm'"); $dado = mysql_fetch_array($busca); $nome = $dado['nome']; $ano = $dado['ano']; $curso = $dado['curso']; $tel = $dado['tel']; echo "RM: " . $rm . "<br>"; echo "Nome do locador: ".$nome. "<br>"; echo "Curso do locador: ".$curso. "<br>"; echo "Ano de início do curso: ".$ano. "<br>"; echo "Telefone do locador: ".$tel. "<br>"; ?> Até então, o único dado exibido é o RM, como faço para exibir o nome, curso, ano e telefone? 
       
×

Important Information

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