Ir para conteúdo

POWERED BY:

Arquivado

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

jnejunior

Programação PHP

Recommended Posts

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

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

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

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

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

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

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

<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

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

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

<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

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 servidor
if(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

×

Informação importante

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