Ir para conteúdo
Fórum Script Brasil
  • 0

Recuperar dados de formulários dinamicos


Herbert Amaro

Pergunta

:blink: Olá td bem estou me matando tentando jogar dados de campos dinamicos em uma tabela html .preciso terminar esse trabalho urgente , não tenho muita experiencia com php, mais foi a melhor solução encontrada pra um formulário que tinha que fazer.

Queria mostrar em uma tabela COD DO PRODUTO,NOME,QUANTIDADE,VALOR

mais como são dinâmicos os forms os usuarios pode incluir esses inputs de novo aee fica COD DO PRODUTO 2, NOME 2 ETC...

como não consigo determinar quantos valores serão..

gostaria de um comando que fizesse mostrar em uma tabela os valores digitados.

tem como?:????

Editado por Herbert Amaro
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

beleza. usei o foreach(), conseguir resgatar os dados, mais ficou bagunçado como poderia organizar eles em uma tabelinha html??

tipo

Cod. DO produto

mostraria todos os cod digitados

descricao

mostraria a descricao do cod ao lado

quantidade

mostraria a quantidade do produto ao lado

e valor

mostraria o valor do produto ao lado

isso tudo em uma linha aee teria o <tr>

pra quebra da linha

pra mostrar outro codigo!

como poderia fazer isso usando o foreach()??? :huh:

Link para o comentário
Compartilhar em outros sites

  • 0
beleza. usei o foreach(), conseguir resgatar os dados, mais ficou bagunçado como poderia organizar eles em uma tabelinha html??

tipo

Cod. DO produto

mostraria todos os cod digitados

descricao

mostraria a descricao do cod ao lado

quantidade

mostraria a quantidade do produto ao lado

e valor

mostraria o valor do produto ao lado

isso tudo em uma linha aee teria o <tr>

pra quebra da linha

pra mostrar outro codigo!

como poderia fazer isso usando o foreach()??? :huh:

Preciso muito da ajuda de vocês!

Link para o comentário
Compartilhar em outros sites

  • 0

Cola o código que você tem aqui pra gente ver como ficou... mas seria +- assim:

<table>
    <tr>
        <td>Cod. do produto</td>
        <td>Descrição</td>
        <td>Quantidade</td>
    </tr>
    <?php
        foreach($x as $blah){
            echo "<tr>";
            echo "<td>".$blah['codProduto']."</td>";
            echo "<td>".$blah['descricao']."</td>";
            echo "<td>".$blah['quantidade']."</td>";
            echo "</tr>";
        }
    ?>
</table>

Editado por Stoma
Link para o comentário
Compartilhar em outros sites

  • 0

não deu certo :mellow: porque o nome dos inputs é dinamico como posso fazer para que o numero do nome do input aumentasse de acordo com o que foi introduzido nele . tipo assim:

codproduto1

codproduto2

codproduto3

e assim em diante de acordo com o numero de inputs que o usuario adicionou codigo segue abaixo...

DO FORMULÁRIO

&lt;script language="javascript" type="text/javascript">

function addRowToTable()
{
var tbl = document.getElementById('tblSample');
var lastRow = tbl.rows.length;
// if there's no header row in the table, then iteration = lastRow + 1
var iteration = lastRow;
var row = tbl.insertRow(lastRow);

// left cell
var cellLeft = row.insertCell(0);
var textNode = document.createTextNode('Produto' + iteration);
cellLeft.appendChild(textNode);

// right cell
var cellRight = row.insertCell(1);
var el = document.createElement('input');
el.setAttribute('type', 'text');
el.setAttribute('name', 'pega[codproduto' + iteration + ']');
el.setAttribute('id', 'codproduto' + iteration);
el.setAttribute('size', '20');
el.onkeypress = keyPressTest;
cellRight.appendChild(el);

// right cell
var cellRight = row.insertCell(2);
var el = document.createElement('input');
el.setAttribute('readonly', 'true');
el.setAttribute('type', 'text');
el.setAttribute('name', 'pega[descricaoprod' + iteration + ']');
el.setAttribute('id', 'descricaoprod' + iteration);
el.setAttribute('size', '40');
el.onkeypress = keyPressTest;
cellRight.appendChild(el);

// right cell
var cellRight = row.insertCell(3);
var el = document.createElement('input');
el.setAttribute('type', 'text');
el.setAttribute('name', 'pega[quantidade' + iteration + ']');
el.setAttribute('id', 'quantidade' + iteration);
el.setAttribute('size', '3');
el.onkeypress = keyPressTest;
cellRight.appendChild(el);

// right cell
var cellRight = row.insertCell(4);
var el = document.createElement('input');
el.setAttribute('type', 'text');
el.setAttribute('name', 'pega[valor' + iteration + ']');
el.setAttribute('id', 'valor' + iteration);
el.setAttribute('size', '4');
el.onkeypress = keyPressTest;
cellRight.appendChild(el);
}
function keyPressTest(e, obj)
{
var validateChkb = document.getElementById('chkValidateOnKeyPress');
if (validateChkb.checked) {
var displayObj = document.getElementById('spanOutput');
var key;
if(window.event) {
key = window.event.keyCode;
}
else if(e.which) {
key = e.which;
}
var objId;
if (obj != null) {
objId = obj.id;
} else {
objId = this.id;
}
displayObj.innerHTML = objId + ' : ' + String.fromCharCode(key);
}
}
function removeRowFromTable()
{
var tbl = document.getElementById('tblSample');
var lastRow = tbl.rows.length;
if (lastRow > -2) tbl.deleteRow(lastRow - 1);
}
function openInNewWindow(frm)
{
// open a blank window
var aWindow = window.open('', 'TableAddRowNewWindow',
'scrollbars=yes,menubar=yes,resizable=yes,toolbar=no,width=400,height=400');

// set the target to the blank window
frm.target = 'TableAddRowNewWindow';

// submit
frm.submit();
}
function validateRow(frm)
{
var chkb = document.getElementById('chkValidate');
if (chkb.checked) {
var tbl = document.getElementById('tblSample');
var lastRow = tbl.rows.length - 0;
var i;
for (i=1; i<=lastRow; i++) {
var aRow = document.getElementById('codproduto' + i);
if (aRow.value.length <= 0) {
alert('A linha ' + i + ' esta vazia');
return;
}
}
}
openInNewWindow(frm);
}
</script> <center><B>
Cadastro de Pedidos<b></center>
<form method="POST"name="form1"  action="email.php">
  <table width="700" border="0" cellspacing="0" cellpadding="0" align="center">
    <tr bgcolor="#F4F4F4"> 
      <td valign="top" width="100" nowrap><font class="texto">Cliente:</font></td>
      <td> 
        <input class="form_campos" type="text" name="cliente" size="34">
      </td>
    </tr>
    <tr bgcolor="#EFEFEF"> 
      <td valign="top" width="100" nowrap></td>
      <td> 

      </td>
    </tr>
    <tr bgcolor="#F4F4F4"> 
      <td valign="top" width="100" nowrap><font class="texto">Representante:</font></td>
      <td> 
        <input class="form_campos" type="text" name="representante" size="11">
      </td>
    </tr>
    <tr bgcolor="#EFEFEF"> 
      <td valign="top" width="100" nowrap><font class="texto">Cond. Pagto:</font></td>
      <td> 
        <input class="form_campos" type="text" name="pagto" size="34">
      </td>
    </tr>
    <tr bgcolor="#F4F4F4"> 
      <td valign="top" width="100" nowrap><font class="texto">Tipos de Venda:</font></td>
      <td> 
        <select class="form_campos" name="venda">
          <option class="form_campos" value="Venda" selected>Venda</option>
          <option class="form_campos" value="Troca">Troca</option>
          <option class="form_campos" value="Venda Fora do Estado">Venda Fora do Estado</option>
          <option class="form_campos" value="Troca Fora do Estado">Troca Fora do Estado</option>

        </select>
      </td>
    </tr>
    <tr bgcolor="#EFEFEF"> 
      <td valign="top" width="100" nowrap></td>
      <td> 
        <div>
                        <p>
<input type="button" value="Adicionar" onclick="addRowToTable();" />
<input type="button" value="Remover" onclick="removeRowFromTable();" />
<input type="button" value="Submeter" onclick="validateRow(this.form);" />
<input type="checkbox" id="chkValidate" /> Validar submissão
</p>
<p>
<input type="checkbox" id="chkValidateOnKeyPress" checked="checked" />
Mostrar durante OnKeyPress
<span id="spanOutput" style="border: 1px solid #000; padding: 3px;"> </span>
</p>
<table border="1" id="tblSample">
<tr>
<th colspan="5">Tabela de exemplo </th>
</tr>
<td></td><td><b>Código do Produto</b></td><td><b>Descrição do Produto</b></td><td><b>Quantidade</b></td><td><b>Valor</b></td>
<tr>
<td>Produto 1</td>
<td><input type="text" name="pega[codproduto0]"
id="codproduto1" size="20" onkeypress="keyPressTest(event, this);" /></td>
<td><input readonly="true" type="text" name="descricao[descricaoprod0]"
id="descricao1" size="40" onkeypress="keyPressTest(event, this);" /></td>

<td>
    <input type="text" name="pega[quantidade0]"
id="quantidade1" size="3" onkeypress="keyPressTest(event, this);" />
</td>
<td><input type="text" name="pega[valor0]"
id="valor1" size="4" onkeypress="keyPressTest(event, this);" /></td>
</tr>
</table>

      </td>
    </tr>
    <tr bgcolor="#F4F4F4"> 
      <td colspan="2" valign="middle"> 
          <br>
        <div align="center"> 
          <input class="form_botao" type="submit" name="Enviar" value="Enviar Mensagem">
          <input class="form_botao" type="reset" name="Limpar" value="Limpar">
        </div>
      </td>
    </tr>
  </table>
</form>
E DO RECEBIMENTO
<?php

$pega = $_POST["pega"];
$cliente = $_POST["cliente"];
$representante = $_POST["representante"];
$pagto = $_POST["pagto"];
$venda = $_POST["venda"];
$i=-2;
$i++;


echo $cliente.'<br>';
echo $representante.'<br>';
echo $pagto.'<br>';
echo $venda.'<br>';
?>

<table>
    <tr>
        <td>Cod. do produto</td>
        <td>Descrição</td>
        <td>Quantidade</td>
    </tr>
    <?php
        foreach($pega as $blah){
            echo "<tr>";
            echo "<td>".$blah['codproduto']."</td>";
            echo "<td>".$blah['descricao']."</td>";
            echo "<td>".$blah['quantidade']."</td>";
            echo "</tr>";
        }
    ?>
</table>

COMO SOLUCIONO ISSO???

Editado por Herbert Amaro
Link para o comentário
Compartilhar em outros sites

  • 0

Você deve ter paciência. Todos são voluntários e respondem no seu tempo livre. Você não é melhor do que ninguém aqui para ter prioridade. Enquanto as pessoas não respondem você poderia pesquisar na Internet ou parar e pensar um pouco sobre o problema. Largue o computador, rabisque em uma folha de papel que logo você consegue a resposta.

Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
Você deve ter paciência. Todos são voluntários e respondem no seu tempo livre. Você não é melhor do que ninguém aqui para ter prioridade. Enquanto as pessoas não respondem você poderia pesquisar na Internet ou parar e pensar um pouco sobre o problema. Largue o computador, rabisque em uma folha de papel que logo você consegue a resposta.

Um abraço.

Paciencia eu tenho, só que busquei uma solução na internet, em foruns e nada.. unico forum mais rapido que achei foi esse, prazo maximo de entrega desse serviço meu , é hj! por isso bate o desespero....

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...