paulo89 0 Denunciar post Postado Outubro 18, 2007 Viva pessoal,Algum conhece um exemplo ou me podem explicar como fazer um form que a gente possa adicionar e remover campos dinamicamente e depois gravar no mysql?Ex.:no form ter um botao a dizer adicionar e ao clicar adicionar mais um campo de texto e outro a dizer remover e ao clicar retirar esse campo de texto.E como pegar estes dados para gravar no mysql.obrigado AbraçosPaulo Compartilhar este post Link para o post Compartilhar em outros sites
GuttoSP 2 Denunciar post Postado Outubro 18, 2007 Você pode conseguir fazer isso usando Variáveis Variáveis, em PHP, e createElement, em JavaScript. Dá uma pesquisada no Google que tem algum material. Compartilhar este post Link para o post Compartilhar em outros sites
paulo89 0 Denunciar post Postado Outubro 19, 2007 Obrigado pelas dicas. Encontrei um exemplo: <script type="text/javascript"><!--function addEvent(){var ni = document.getElementById('myDiv');var numi = document.getElementById('theValue');var num = (document.getElementById("theValue").value -1)+ 2;numi.value = num;var divIdName = ""+num+"";var newdiv = document.createElement('div');newdiv.setAttribute("id",divIdName);newdiv.innerHTML = "Campo "+num+" <input type='text' name='nome"+num+"' size='40' maxlength='255'><a href=\"java script:;\" onclick=\"removeEvent(\'"+divIdName+"\')\">Remover campo ""+divIdName+""</a>";ni.appendChild(newdiv);}function removeEvent(divNum){var d = document.getElementById('myDiv');var olddiv = document.getElementById(divNum);d.removeChild(olddiv);}//--></script> E no form: if (!$ok) { echo "<p><a href=\"java script:;\" onclick=\"addEvent();\">Adicionar Campo</a></p>"; echo "<form name=\"form_temporada\" method=\"post\" action=\"admin.php?page=teste&op=teste2&ok=true\">"; echo "<input type=\"hidden\" value=\"0\" id=\"theValue\" />"; echo "Prova: <input type=\"text\" name=\"prova\" size=\"40\" maxlength=\"255\">"; echo "<div id=\"myDiv\"> </div>"; echo "<input type=\"submit\" name=\"Submit\" value=\"Gravar\">"; echo "</form>"; } else { $save = true; $dblink->query("INSERT INTO memht_teste (id_teste,prova,nome) VALUES (null,'$prova','$nome')"); } Agora como faço para pegar a variavel do campo dinamico para gravar tudo na base de dados? Obrigado pela atenção Abraços Paulo Compartilhar este post Link para o post Compartilhar em outros sites
GuttoSP 2 Denunciar post Postado Outubro 19, 2007 PHP $sql = " VALUES ('', "; foreach ($_POST as $campo => $valor) { $$campo = $valor; if(strtolower($campo) != "submit") { if ($campo == "data") { // se o nome do campo for data, executa a formatação da data $valor = implode("-", array_reverse(explode("/", $valor))); } $sql .= "'" . $valor . "', "; $campo_ .= $campo . ", "; } } $campo_ = rtrim($campo_, ", ") . ")"; $sql_ = rtrim($sql, ", "); $cadastra = mysql_query("INSERT INTO tabela (id, " . $campo_ . $sql_ . ")") or die(mysql_error()); Esse script pega tudo que foi enviado via POST e insere na tabela. Como o botão do formulário também é um elemento que contém valor, ele verifica se o elemento NÃO é o botão (submit), esse trecho deve permanecer, caso contrário ele irá buscar um campo na tabela com o nome de submit e tentará inserir o valor no mesmo. PHP if(strtolower($campo) != "submit") { Esta outra parte verifica se o elemento é o campo Data, para o caso de querer formatar a data para o formato Y-m-d, se for para ficar no formato brasileiro (d-m-Y) é só apagar o código abaixo: PHP if ($campo == "data") { // se o nome do campo for data, executa a formatação da data $valor = implode("-", array_reverse(explode("/", $valor))); } Se você for gravar os dados em um BD, a tabela teria que ter os nomes dos campos com o mesmo nome dos campos enviados, como seu formulário será dinâmico, a tabela também teria que ser, aí já teria que usar ALTER TABLE. Compartilhar este post Link para o post Compartilhar em outros sites