jnejunior 1 Denunciar post Postado Maio 23, 2009 preciso de help... preciso de um programa que faça o seguinte: 1) o cara informa a quantidade de campos que deseja por meio de um input text. 2) conforme o número que o cara digitou, apareça os campos propriamentes ditas, tipo se o cara digitou 3, apareça 3 campos de texto... 3) ai se nesses campos o cara digitar 10-20-30, eles sejam somados e apareça o total na página.. obrigado... Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo de Andrade 2 Denunciar post Postado Maio 23, 2009 contrata um programador... ja quer o codigo mastigo veio ? se quiser a galera te ajuda e tira duvidas... mas o codigo todo pronto você ta e sacanagem ne... Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Maio 23, 2009 Tem uma video aula bem legal sobre a parte de fazer vários input. No caso ali era de upload, mas a idéia é a mesma. http://www.mxmasters.com.br/php/php-desenv...ema-de-uploads/ Com relação a somar, entra no fórum de javascript que tem alguns tópicos sobre o assunto. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Maio 23, 2009 Pretende usar Javascript para isso? acho que fica mais interessante. Faça o input com HTML normal, e uma função JS, com um loop, da quantidade que foi digitada no input, dando innerHTML mesmo, dos outros inputs.. ai a soma, é super simples, faz um botão "Calcular", e varra todos os inputs que tiverem sido criados.. ´ Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Maio 23, 2009 contrata um programador... ja quer o codigo mastigo veio ? se quiser a galera te ajuda e tira duvidas... mas o codigo todo pronto você ta e sacanagem ne... não quero o código matigado, eu fiz em casa, mas não esta dando certo, então com o codigo que vcs me passassem, eu compararia e aprenderia tambem Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Maio 23, 2009 Pretende usar Javascript para isso? acho que fica mais interessante. Faça o input com HTML normal, e uma função JS, com um loop, da quantidade que foi digitada no input, dando innerHTML mesmo, dos outros inputs.. ai a soma, é super simples, faz um botão "Calcular", e varra todos os inputs que tiverem sido criados.. ´ não quero fazer em PHP Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 23, 2009 não quero fazer em PHP faltou uma vírgula, não ? http://forum.imasters.com.br/public/style_emoticons/default/seta.gif "não, quero fazer em PHP" Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 23, 2009 exemplo tmp.php <form action=tmp.php method=post> <input type=text name=num value=1> <input type=submit> </form> <?php $v = 'num'; $$v = false; if( isset( $_POST[$v] ) ) { $$v = $_POST[$v]; } if( $$v ) { for( $i = 1; $i <= $v; $i++ ) { echo PHP_EOL . '<br>' . $i . ' <input type="text" name="field[' . $i . ']" value="">'; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Maio 23, 2009 exemplo tmp.php <form action=tmp.php method=post> <input type=text name=num value=1> <input type=submit> </form> <?php $v = 'num'; $$v = false; if( isset( $_POST[$v] ) ) { $$v = $_POST[$v]; } if( $$v ) { for( $i = 1; $i <= $v; $i++ ) { echo PHP_EOL . '<br>' . $i . ' <input type="text" name="field[' . $i . ']" value="">'; } } ?> ta meio complicado, pois sou iniciante, pode mostrar de um jeito mais simples e explanado? por favor Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Maio 23, 2009 <form method="POST"> Numero de campos:<input type="text" name="nc" value="1" /> <input type="submit" value="Criar" /> </form> <?php if($_SERVER['REQUEST_METHOD'] == 'POST'){ if(array_key_exists('n_1', $_POST)){ $res = 0; foreach($_POST as $key => &$value){ if(strpos($key, 'n_') != -1) $res += (double)$value; } echo 'Resultado:', $res; exit(0); } $num = array_key_exists('nc', $_POST)? (int)$_POST['nc'] : 1; echo '<form method="post">'."\n"; while($num > 0){ echo "\t", 'Num:<input type="text" name="n_', $num, '" />', nl2br("\n"); $num--; } echo "\t", '<input type="submit" value="Enviar" />', "\n", '</form>'; } ?> Edit: em java script: <html> <head> <title>Exemplo</title> </head> <script type="text/JavaScript"> function adicionaEvento(elemento, evento, funcao, bool){ bool = (bool == null)? false : bool; if(elemento.addEventListener) elemento.addEventListener(evento, funcao, bool); else elemento.attachEvent('on' + evento, funcao); } function limpa(elemento){ while(elemento.firstChild){ elemento.removeChild(elemento.firstChild); } } adicionaEvento(window, 'load', function(){ var criarButton = document.getElementsByName("cb")[0]; var resultadoDiv = document.getElementById("rd"); adicionaEvento(criarButton, 'click', function(){ var numeroCampos = Number(document.getElementsByName("nc")[0].value); numeroCampos = (numeroCampos > 0)? numeroCampos : 1; limpa(resultadoDiv); while(numeroCampos > 0){ var input = document.createElement("input"); input.setAttribute("type", "text"); input.setAttribute("name", "valor"); resultadoDiv.appendChild(document.createTextNode("Numero:")); resultadoDiv.appendChild(input); resultadoDiv.appendChild(document.createElement("br")); numeroCampos--; } var calcularButton = document.createElement("input"); calcularButton.setAttribute("type", "button"); calcularButton.setAttribute("value", "Calcular"); adicionaEvento(calcularButton, 'click', function(){ var resultado = 0; var valoresElemento = document.getElementsByName("valor"); var len = valoresElemento.length; var it; for(it = 0;it < len;it++){ var valorAtual = Number(valoresElemento[it].value); resultado += (isNaN(valorAtual))? 0 : valorAtual; } resultadoDiv.innerHTML = "Resultado: " + resultado; }, false); resultadoDiv.appendChild(calcularButton); }, false); }, false); </script> <body> <label for="nc">Numero de campos:</label> <input type="text" name="nc" /> <input type="button" name="cb" value="Criar" /> <div id="rd"> </div> </body> </html> Ps: o fórum separa a palavra javaScript (deveria ser junta).Arrume isso. Compartilhar este post Link para o post Compartilhar em outros sites
Snipper 0 Denunciar post Postado Maio 24, 2009 Pra fazer os campos apareceberm com java ta facil Java para 13 campos java.jsp function OpenSel(op) { if (op == 1) { document.getElementById('divum').style.display="none"; document.getElementById('divdois').style.display="none"; document.getElementById('divtres').style.display="none"; document.getElementById('divquatro').style.display="none"; document.getElementById('divcinco').style.display="none"; document.getElementById('divseis').style.display="none"; document.getElementById('divsete').style.display="none"; document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; }else if (op == 2) { document.getElementById('divdois').style.display="none"; document.getElementById('divtres').style.display="none"; document.getElementById('divquatro').style.display="none"; document.getElementById('divcinco').style.display="none"; document.getElementById('divseis').style.display="none"; document.getElementById('divsete').style.display="none"; document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; }else if (op == 3) { document.getElementById('divtres').style.display="none"; document.getElementById('divquatro').style.display="none"; document.getElementById('divcinco').style.display="none"; document.getElementById('divseis').style.display="none"; document.getElementById('divsete').style.display="none"; document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; }else if (op == 4) { document.getElementById('divquatro').style.display="none"; document.getElementById('divcinco').style.display="none"; document.getElementById('divseis').style.display="none"; document.getElementById('divsete').style.display="none"; document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; }else if (op == 5) { document.getElementById('divcinco').style.display="none"; document.getElementById('divseis').style.display="none"; document.getElementById('divsete').style.display="none"; document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; document.getElementById('divquatro').style.display="block"; }else if (op == 6) { document.getElementById('divseis').style.display="none"; document.getElementById('divsete').style.display="none"; document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; document.getElementById('divquatro').style.display="block"; document.getElementById('divcinco').style.display="block"; }else if (op == 7) { document.getElementById('divsete').style.display="none"; document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; document.getElementById('divquatro').style.display="block"; document.getElementById('divcinco').style.display="block"; document.getElementById('divseis').style.display="block"; }else if (op == 8) { document.getElementById('divoito').style.display="none"; document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; document.getElementById('divquatro').style.display="block"; document.getElementById('divcinco').style.display="block"; document.getElementById('divseis').style.display="block"; document.getElementById('divsete').style.display="block"; }else if (op == 9) { document.getElementById('divnove').style.display="none"; document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; document.getElementById('divquatro').style.display="block"; document.getElementById('divcinco').style.display="block"; document.getElementById('divseis').style.display="block"; document.getElementById('divsete').style.display="block"; document.getElementById('divoito').style.display="block"; }else if (op == 10) { document.getElementById('divdez').style.display="none"; document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; document.getElementById('divquatro').style.display="block"; document.getElementById('divcinco').style.display="block"; document.getElementById('divseis').style.display="block"; document.getElementById('divsete').style.display="block"; document.getElementById('divoito').style.display="block"; document.getElementById('divnove').style.display="block"; }else if (op == 11) { document.getElementById('divum').style.display="block"; document.getElementById('divdois').style.display="block"; document.getElementById('divtres').style.display="block"; document.getElementById('divquatro').style.display="block"; document.getElementById('divcinco').style.display="block"; document.getElementById('divseis').style.display="block"; document.getElementById('divsete').style.display="block"; document.getElementById('divoito').style.display="block"; document.getElementById('divnove').style.display="block"; document.getElementById('divdez').style.display="block"; }else if (op == 12) { document.getElementById('divcpfnome').style.display="block"; document.getElementById('divcpf').style.display="block"; document.getElementById('divcnpj').style.display="none"; document.getElementById('divcnpjnome').style.display="none"; document.getElementById('divcontatonome').style.display="none"; document.getElementById('divcontato').style.display="none"; }else if (op == 13) { document.getElementById('divcnpj').style.display="block"; document.getElementById('divcnpjnome').style.display="block"; document.getElementById('divcontatonome').style.display="block"; document.getElementById('divcontato').style.display="block"; document.getElementById('divcpf').style.display="none"; document.getElementById('divcpfnome').style.display="none"; } } //fim ----------------------------------------------------------------------------------------------------- Aqui você cria o imput bastar mudar o numero do OpenSet para o numero de campos que você quer <input type="radio" name="valores" value="" onChange="OpenSel(2)"> ------------------------------------------------------------------------------------------------------- E por fim é so criar os campos dentro de uma div, nesse meu exemplo eu mostro o Campo Nome e Email Ex: <div id="divdois" style="display:none;"> <table width="80%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="miolo">Nome:</td> <td><input name='nodois' type='text' class='corpoForm' size='60' maxlength='60' /></td> </tr> <tr> <td class="miolo">Email:</td> <td><input name='emadois' type='text' class='corpoForm' size='60' maxlength='60' /></td> </tr> </table><br /> </div> ------------------------------------------------------------------------------------------------------------------- Espero ter ajudado []'s Alexandre Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 24, 2009 obrigado ´pela sugestão Snipper apenas saliento que javascript, java e jsp são 3 coisas distintas quando referir-se a javascript evite abreviar usando o termo "java" quanto à questão do jnejunior, os exemplos em php apresentados são os mais simples possíveis execute-os ao menos uma vez para entender. para consultoria personalizada, consulte o Mercado iMasters http://mercado.imasters.com.br/ Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Maio 25, 2009 <form method="POST"> Numero de campos:<input type="text" name="nc" value="1" /> <input type="submit" value="Criar" /> </form> <?php if($_SERVER['REQUEST_METHOD'] == 'POST'){ if(array_key_exists('n_1', $_POST)){ $res = 0; foreach($_POST as $key => &$value){ if(strpos($key, 'n_') != -1) $res += (double)$value; } echo 'Resultado:', $res; exit(0); } $num = array_key_exists('nc', $_POST)? (int)$_POST['nc'] : 1; echo '<form method="post">'."\n"; while($num > 0){ echo "\t", 'Num:<input type="text" name="n_', $num, '" />', nl2br("\n"); $num--; } echo "\t", '<input type="submit" value="Enviar" />', "\n", '</form>'; } ?> Edit: em java script: <html> <head> <title>Exemplo</title> </head> <script type="text/JavaScript"> function adicionaEvento(elemento, evento, funcao, bool){ bool = (bool == null)? false : bool; if(elemento.addEventListener) elemento.addEventListener(evento, funcao, bool); else elemento.attachEvent('on' + evento, funcao); } function limpa(elemento){ while(elemento.firstChild){ elemento.removeChild(elemento.firstChild); } } adicionaEvento(window, 'load', function(){ var criarButton = document.getElementsByName("cb")[0]; var resultadoDiv = document.getElementById("rd"); adicionaEvento(criarButton, 'click', function(){ var numeroCampos = Number(document.getElementsByName("nc")[0].value); numeroCampos = (numeroCampos > 0)? numeroCampos : 1; limpa(resultadoDiv); while(numeroCampos > 0){ var input = document.createElement("input"); input.setAttribute("type", "text"); input.setAttribute("name", "valor"); resultadoDiv.appendChild(document.createTextNode("Numero:")); resultadoDiv.appendChild(input); resultadoDiv.appendChild(document.createElement("br")); numeroCampos--; } var calcularButton = document.createElement("input"); calcularButton.setAttribute("type", "button"); calcularButton.setAttribute("value", "Calcular"); adicionaEvento(calcularButton, 'click', function(){ var resultado = 0; var valoresElemento = document.getElementsByName("valor"); var len = valoresElemento.length; var it; for(it = 0;it < len;it++){ var valorAtual = Number(valoresElemento[it].value); resultado += (isNaN(valorAtual))? 0 : valorAtual; } resultadoDiv.innerHTML = "Resultado: " + resultado; }, false); resultadoDiv.appendChild(calcularButton); }, false); }, false); </script> <body> <label for="nc">Numero de campos:</label> <input type="text" name="nc" /> <input type="button" name="cb" value="Criar" /> <div id="rd"> </div> </body> </html> Ps: o fórum separa a palavra javaScript (deveria ser junta).Arrume isso. ---------------------------------- <form method="POST"> Numero de campos:<input type="text" name="nc" value="1" /> <input type="submit" value="Criar" /> </form> <?php if($_SERVER['REQUEST_METHOD'] == 'POST'){ // essa linha, o que quer dizer? if(array_key_exists('n_1', $_POST)){// e essa? $res = 0; foreach($_POST as $key => &$value){ if(strpos($key, 'n_') != -1) $res += (double)$value; // e essa? } echo 'Resultado:', $res; exit(0); } $num = array_key_exists('nc', $_POST)? (int)$_POST['nc'] : 1; // e essa outra? echo '<form method="post">'."\n"; while($num > 0){ echo "\t", 'Num:<input type="text" name="n_', $num, '" />', nl2br("\n"); $num--; } echo "\t", '<input type="submit" value="Enviar" />', "\n", '</form>'; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Maio 25, 2009 Procure usar o bbcode [ c o d e ] código aqui dentro [ / c o d e ] para postar códigos.(sem os espaços nas tags) você não entendeu a função descrita ? if($_SERVER['REQUEST_METHOD'] == 'POST'){ // essa linha, o que quer dizer?esse IF, testa se exitiu uma requisição via POST ao servidorif(array_key_exists('n_1', $_POST)){// e essa? essa, vê se existe uma chave "n_1", no array super global $_POST. $num = array_key_exists('nc', $_POST)? (int)$_POST['nc'] : 1; // e essa outra? é um if ternário..verifica se existe uma chave "nc", no array super global $_POST, se existir, guarda o valor dele INTEIRO dele na variável $num, caso contrário, guarda o valor 1 Sugiro que você dê uma estudada.. http://br2.php.net/array_key_exists http://br2.php.net/manual/en/reserved.variables.server.php O manual do php é teu amigo. Compartilhar este post Link para o post Compartilhar em outros sites