Ir para conteúdo

POWERED BY:

Arquivado

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

sfonseca45

[Resolvido] Criar linha automaticamente após insert

Recommended Posts

Estou desenvolvendo um sistema para uma escola e me deparei com este pequeno problema.

 

Ao incluir as notas do aluno gostaria que após inserir a nota o sistema criasse automaticamente uma linha abaixo para que pudesse fazer nova inserção.

 

Isto é possível ?

 

Já fiz várias pesquisas e não achei nenhuma solução.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que linha ? Criar linha onde ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na tabela.

 

Imagine uma tabela com uma linha com os inputs e um botão para inserir nota.

 

Após inserir a nota no DB gostaria que ele criasse outra linha para inserir outra a nota e asim sucessivamente.

 

Será possivel ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. É possível tanto com Javascript como com php.

Dependendo do processo, a escolha de uma linguagem ou outra será melhor no teu caso.

 

você está trazendo algumas linhas preenchidas já ?

O form começa em branco, e você queria que ao terminar de preencher uma, outra já surgisse ?

Só vai surgir a linha, depois do submit ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se possível gostaria que fosse em PHP.

 

Isso mesmo começa em branco, mas estou pensando em colocar o nome do aluno (fixo) e as notas daquela materia que já estejam cadastradas.

 

Gostaria que a linha surgisse depois do submit.

 

Voce poderia me dar um exemplo de como se faz, pode ser em qualquer linguagem

 

Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada, a lógica é essa:

<?php
	if( $_POST['enviar'] )
	{
		foreach( $_POST['linha'] as $linha )
		{
			if( $linha != '' )
				$input .= '<input type="text" name="linha[]" value="'.$linha.'" />'."\n";
		}
	}
	$input .= '<input type="text" name="linha[]" value="" />'."\n";
?>
<form action="" method="post">
<?php
	echo $input;
?>
	<input type="submit" name="enviar" value="Enviar" />
</form>
Já criar os inputs com os valores que eles devem ter, puxando do banco(ou não).. e sempre adicionar mais um, independente dos outros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adaptei para uma base de testes e o código ficou assim :

 

<?php
	error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php
	if( $_POST['enviar'] )
	{
		foreach( $_POST['linha'] as $linha )
		{
			if( $linha != '' )
				$input .= '<input type="text" name="linha[]" value="'.$linha.'" /><br/>'."\n";
		}
	}
	$input .= '<input type="text" name="linha[]" value="" />'."\n";
?>
<form name="form1" method="POST">
  <?php
	echo $input;
?>
  <input type="submit" name="enviar" value="Enviar" />
  <label></label>
</form>
<?php

$db = mysql_connect("localhost", "root", "") or die ('Erro ao conectar: '.mysql_error());

mysql_select_db('grade',$db) or die ('Erro ao selecionar: '.mysql_error());

$query = mysql_query("INSERT INTO `teste` (`nome`) VALUES ('$linha')");

if($query)

echo 'Cadastro efetuado com sucesso<br/>Nome: '.$linha;

else

echo 'Ocorreram problemas no cadastro!';

?>
</body>
</html>

Funcionou perfeitamente, tem alguma sugestão ou estou indo pelo caminho certo ?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... na verdade, qndo você enviar, você terá um array, tipo:

$_POST['linha'][1]

$_POST['linha'][2]

$_POST['linha'][3]

$_POST['linha'][4]

.. você deve inserir cada uma dessas linhas no banco.. então precisará de um laço q rode o mesmo número de vezes, q o tamanho do array.

E veja que se for para trazer dados que já estão no banco, você precisa fazer outro laço substituindo o meu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi ...

 

Mas do jeito que está funciona perfeitamente ...

 

ao inserir o primeiro nome e clicar no botão ele insere no banco e abre outra linha para o próximo cadastro que roda perfeitamente e assim sucessivamente ...

 

Do jeito que eu fiz ele cadastra um a um sem loop ...

 

Para mim está perfeito ...

 

A unica coisa diferente é que ele roda a instrução SQL no final e não no começo como é de praxe ...

 

Obrigado

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.