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

(Resolvido) Adicionando novos campos com javascript e enviando pa


Magic Angel

Pergunta

Seguinte.. eu tenho um formulário com um código javascript onde a pessoa clica num hiperlink "Adicionar Campo", e ele chama para dentro de uma div oculta um novo campo no formulário.

Ok, ele funciona que é uma maravilha... até aí, mas tenho um probleminha: quero salvar todo o formulário no MySql, incluindo esses campos, que estão dentro da tag head, sob forma de javascript, mas que, pela lógica, quando acionados pelo hiperlink, deviam parar dentro das tags do formulário também.

Eu acho que sei o problema.. quer dizer.. o hiperlink chama aqueles campos ocultos.. mas na verdade esses campos nunca saem da tag head, eles só são mostrados dentro da div oculta como uma "cópia".

Isso?

Mas e aí? Não posso iniciar um form dentro da tag head..

Como inserir esses campos no banco de dados, sem deixá-los completamente a vista dentro do formulário?

Postei dentro do fórum de PHP, e não do de JavaScript, porque acredito que o PHP vai poder me ajudar nessa.. de alguma forma o_o'

o primeiro arquivo, bem sucinto, apenas para compreensão:

<?php
echo <<<EOT

<html>
<head>
&lt;script language="javascript">
    num2 = 1;
    limite2 = 2;
    function add2()
    {
        var filelocal2 = document.getElementById('morefiles2');
        var fileID2 = num2;
        var fileDIV2 = document.createElement('div');
        fileDIV2.setAttribute("id", fileID2);
        if (num2<limite2)
        {
            fileDIV2.innerHTML = "<label for='obs3'>Observação:</label> <input name='obs3' class='grande'> <br> <p> <label for='subtitulo' class='subtitulo'>Vice-Direção:</label> <br> <label for='nome3x"+fileID2+"'>Nome:</label> <input id='nome3x"+fileID2+"' class='medio'> <label for='email3x"+fileID2+"'>E-mail:</label> <input id='email3x"+fileID2+"' class='medio'> <br> <label for='skype3x"+fileID2+"'>Skype:</label> <input id='skype3x"+fileID2+"' class='medio'> <label for='msn3x"+fileID2+"'>MSN:</label> <input id='msn3x"+fileID2+"' class='medio'> <br> <label for='obs3x"+fileID2+"'>Observação:</label> <input name='obs3x"+fileID2+"' class='grande'> <br> <a href=\"java script:rmv2('"+fileID2+"');\">Remover Campo</a> </p>";
            filelocal2.appendChild(fileDIV2);
            num2++;
        }
        else
        {
            alert('Há um limite de 2 campos para este ítem.');
        }
    }
</script>
</head>
<body>
    <form name="alterar" method="post" action="estatisticas2b.php">
           <label for="titulo" class="titulo">:: Equipe Diretiva</label>
    <p>
    <label for="subtitulo" class="subtitulo">Direção:</label>
        <br>
        <label for="nome2">Nome:</label>
        <input name="nome2" class="medio" value="{$linha['nome2']}">
        <label for="email2">E-mail:</label>
        <input name="email2" class="medio" value="{$linha['email2']}">
        <br>
        <label for="skype2">Skype:</label>
        <input name="skype2" class="medio" value="{$linha['skype2']}">
        <label for="msn2">MSN:</label>
        <input name="msn2" class="medio" value="{$linha['msn2']}">
        <label for="telefone2">Celular:</label>
        <input name="dddt2" class="mini" value="{$linha['dddt2']}">
        <label for="espaco" class="espaco"></label>
        <input name="telefone2" class="medio_ex" value="{$linha['telefone2']}">
                </p>
    <p>
    <label for="subtitulo" class="subtitulo">Vice-Direção:</label>
        <br>
        <label for="nome3">Nome:</label>
        <input name="nome3" class="medio" value="{$linha['nome3']}">
        <label for="email3">E-mail:</label>
        <input name="email3" class="medio" value="{$linha['email3']}">
        <br>
        <label for="skype3">Skype:</label>
        <input name="skype3" class="medio" value="{$linha['skype3']}">
        <label for="msn3">MSN:</label>
        <input name="msn3" class="medio" value="{$linha['msn3']}">
    <div id="morefiles2"></div>
                <a href="java script:add2();">Adicionar Campo</a>
    </form>
</body>
</html>
EOT;
?>
o segundo arquivo, sucinto também, enviando os dados do arquivo anterior:
<?php
    include "_bd.php"; //banco de dados

    $sql = "UPDATE estatisticas SET

    nome3='".$_POST['nome3']."',
    email3='".$_POST['email3']."',
    skype3='".$_POST['skype3']."',
    msn3='".$_POST['msn3']."',

    nome3x1='".$_POST['nome3x1']."',
    email3x1='".$_POST['email3x1']."',
    skype3x1='".$_POST['skype3x1']."',
    msn3x1='".$_POST['msn3x1']."'

    WHERE id='$id'";

    mysql_query($sql)OR DIE(mysql_error());

header("Location: estatisticas3a.php?id=$id");
?>

HELP ME ç.ç

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Eu peguei o seu script e simplesmente botei um botão de submeter para fazer o debug, quando se envia sem se criar mais elementos o que aparece é o seguinte:

Array ( [nome2]=> [email2] => [skype2] => [msn2] => [dddt2] => [telefone2] => [nome3] => [email3] => [skype3] => [msn3] => [submit] => submit )

Quanto eu crio mais elementos o que aparece é:

Array ( [nome2]=> [email2] => [skype2] => [msn2] => [dddt2] => [telefone2] => [nome3] => [email3] => [skype3] => [msn3] => [obs3] => [obs3x1] => [submit] => submit )

Se você observar dos elementos que são criados só aparece os campos obs3 e obs3x1, o motivo é simples, olhando o código fonte:

<label class="subtitulo" for="subtitulo">Direção:</label>
<br/>
<label for="nome2">Nome:</label>
<input class="medio" value="" name="nome2"/>
<label for="email2">E-mail:</label>
<input class="medio" value="" name="email2"/>
<br/>
<label for="skype2">Skype:</label>
<input class="medio" value="" name="skype2"/>
<label for="msn2">MSN:</label>
<input class="medio" value="" name="msn2"/>
<label for="telefone2">Celular:</label>
<input class="mini" value="" name="dddt2"/>
<label class="espaco" for="espaco"/>
<input class="medio_ex" value="" name="telefone2"/>
</p>
<p>
</p>
<div id="morefiles2">
<div id="1">
<label for="obs3">Observação:</label>
<input class="grande" name="obs3"/>
<br/>
<p>
<label class="subtitulo" for="subtitulo">Vice-Direção:</label>
<br/>
<label for="nome3x1">Nome:</label>
<input id="nome3x1" class="medio"/>
<label for="email3x1">E-mail:</label>
<input id="email3x1" class="medio"/>
<br/>
<label for="skype3x1">Skype:</label>
<input id="skype3x1" class="medio"/>
<label for="msn3x1">MSN:</label>
<input id="msn3x1" class="medio"/>
<br/>
<label for="obs3x1">Observação:</label>
<input class="grande" name="obs3x1"/>
<br/>

Observe que os elementos de cima são os fixos, e os de baixo os criados, se você notar, os de baixo não tem o name especificado, logo, eles nunca vão ser resgatados pois não entram no array da superglobal $_POST. Em resumo, altere o javascript para além de especificar os ids dos elementos, também especificar os names...

Link para o comentário
Compartilhar em outros sites

  • 0

Olá !

Bom eu estou criando um programa para vendas de loja porem online.

e estou com um problema similar queria saber se podem me ajudar?

bom vamos la

eu preciso que o codigo criar varios inputs na mesma linha por exemplo.

quando eu clicar no botão add novos campos ele insira um campos nome outro quant outro valorunit e outro valortotal.

ate ai tubo bem eu consegui.

mais na hora de criar outros campos em outra linha não to conseguindo e também não estou conseguindo recuperar os dados quando os envio para salvar em mysql.

por exemplo

eu quero compra 1 saco de cimento um saco de areia. isso seria 2 intens porem com valores diferentes .

no caso como eu faria para recuperar esses valore distintos mais salvandos na mesma tabela?

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,1k
    • Posts
      651,7k
×
×
  • Criar Novo...