Ir para conteúdo

Arquivado

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

Alexacl

Como criar vários $_POST com increment em cada name via javascript?

Recommended Posts

Estou criando um formulário com input dinâmico que se duplicam ao clicar no botao "Adicionar" com imcrement.
Meus códigos para exemplificar um pouco:

 

var count1 = 0;
    function duplicarCampos(){
        count1++;
        var clone = document.getElementById('ortipo1').cloneNode(true);
        var destino = document.getElementById('destipo1');
        destino.appendChild (clone);
        var camposClonados = clone.getElementsByTagName('input');
        if (count1 < 15) {
            for(i=0; i<camposClonados.length;i++){
                document.getElementById('tipo1').name = "TA"+count1;
            }
        } else {
            alert("Você chegou no numero máximo permitido.");
            var node1 = document.getElementById('destipo1');
            node1.removeChild(node1.childNodes[0]);
        }
    }
    function removerCampos(id){
        var node1 = document.getElementById('destipo1');
        node1.removeChild(node1.childNodes[0]);
    }

 

<form id="form1" method="post" action="categories-validate.php" style="border:2px solid gray;width:400px; height:auto; min-height:100px; max-height:1000px; padding:15px;background:#E1E1E1; position:relative; vertical-align: middle; ">
<div style="padding-top:20px;padding-bottom:10px; max-height: 800px; overflow:auto;">
            <ul>
                <h4 style="text-align:left; float:left;">Tipo 1</h4>
                <li style="float:right; margin-top:5px;">
                    <input type="button" onclick="duplicarCampos();" value="Adicionar">
                    <input type="button" onclick="removerCampos(this);" value="Remover">
                </li>
                <br><br>
            </ul>
            <ul style="max-width:180px; float:left;">
                <li id="ortipo1" style="float:left; padding-bottom:5px;">
                    <input type="text" id="tipo1" name="TA0"  maxlength="14" size="14" style="margin-top:5px;"/><br>
                </li>
                <div style="display:block; max-width:180px; float:left;"id="destipo1"></div><br>
            </ul>
        </div>
        <hr size="2">
</form>

 

Quero que no arquivo categories-validate.php que é para onde form vai ser redirecionado, o $_POST seja criado automaticamente no número de vezes desejado, pensei em duplicar um $_POST e alterar parte do name pela numeração criado pelo increment. Exemplo: (obs: onde tiver ponto de interrogação eu não sei oq colocar).

 

var a = 0;
    var count = 0;
    var counter4 = 10;
    function dup() {
        while (a < counter4){
            count++;
            var clone = document.getElementById('post').cloneNode(true);
            var destino = document.getElementById('dupdest');
            destino.appendChild (clone);
            var camposClonados = clone.getElementsBy??;
            for(i=0; i<camposClonados.length;i++){
                ???????
            }
            a++;
        }
    }
<div id="post"><?php echo $_POST['TA0']; ?></div>
<div id="dupdest">

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode utilizar array na propriedade name do input. 

<input type="text" id="tipo1" name="TA[]"  maxlength="14" size="14" style="margin-top:5px;"/><br>

Então ficaria assim suas funções:

function duplicarCampos(){
        count1++;
        var clone = document.getElementById('ortipo1').cloneNode(true);
        var destino = document.getElementById('destipo1');
        destino.appendChild (clone);
        var camposClonados = clone.getElementsByTagName('input');
        if (count1 < 15) {
            for(i=0; i<camposClonados.length;i++){
                document.getElementById('tipo1').name = "TA[]";//Linha alterada
            }
        } else {
            alert("Você chegou no numero máximo permitido.");
            var node1 = document.getElementById('destipo1');
            node1.removeChild(node1.childNodes[0]);
        }
    }
    function removerCampos(id){
        var node1 = document.getElementById('destipo1');
        node1.removeChild(node1.childNodes[0]);
    }

E ai você pode recuperar somente um:

$post = $_POST["TA"];

Depois só usar como uma array normal:

 

for ($i=0; $i < count($post) ; $i++) {
	echo '<div id="post">'.$post[$i].'</div>
	<div id="dupdest">';
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida.
       
      Estou escrevendo um Sistema que tem vários Módulos.
       
      O módulo principal tem:
      Estoque | Compras | Expedição | Vendas

      Minha dúvida:
      como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar,
      eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ?


      Grato,
       
      Cesar
    • Por douglas79
      Bom dia,

      Há alguns dias que venho instalar o apache, o php, mysql e o phpmyadmin manualmente e sem obter sucesso. Até consegui rodar o php, porém, quando vou baixar a úitima versão do MYSQL, não tem todos os pacotes nele instalados, inclusive no completo, só encontro o Router.
      Alguém pode me dizer o porquê que isso está ocorrendo?
      Desde já agradeço a ajuda de vocês, que será bem vinda!
      No aguardo!

      Uso a versão 8.3.9 do PHP
      Meu SO é o Windows 10 32 bits
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me perdoa em postar mais uma dúvida minha.

      Através de ajuda e orientação dos membros do Grupo, tenho conseguido resolver muitos problemas que tenho encontrado.
       
      Gostaria de saber dos amigos do grupo, se tem algum vídeo aula, orientando a Instalação das Biblioteca para Emissão de Nota Fiscal Eletrônica.
       
      Tenho feito várias busca e tenho encontrado a maioria das vezes tudo em LARAVEL.

      Sei que para instalar as Biblioteca, precisa do Composer, até aqui tudo bem.

      Minha dúvida: 
      após fazer o download da  sped-nfe  e  sped-da, essas biblioteca devem ser gravada em qual pasta ?  ----   na C:\  ou dentro da pasta do Sistema ?
      quando dou o comando: COMPOSER INSTALL esse comando já instala todas as bibliotecas, ou 1 por 1 ?

      Grato,
       
      Cesar
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.