Ir ao conteúdo

Posts recomendados

Postado

Estou tentando colocar cada funcionalidade de um crud dentro de uma função,pra assim quando clicar em alguma delas, executar a função, mas ainda não estou conseguindo um resultado.

 

Estou levando em consideração ao que aprendi em C só que ainda não esta funcionando!!

 

Aqui está o formulário simples para teste com um campo só.

<form method="POST" action="">
	<fieldset>
		<legend>Cadastro</legend>
		Nome:<input type="text" name="nome"><br>
			 <input type="submit" value="Enviar">
	</fieldset>
</form>
<?php 
	include "funcao.php";
	@$nome=inserir($_GET['nome']);
?>

 

A função fiz em um arquivo separado, que nele está incluído o formulario.php e a conexao.php, tenho a ideia de o parâmetro da função receber os dados da variável "nome", que está no GET do formulário.php e assim fazer o "INSERT INTO", tabela "crud".

<?php 
require "conexao.php";
require "formulario.php";

function inserir($nome){
	$sql="INSERT INTO crud (nome) VALUES ('$nome')";
	$rs=mysqli_query($link,$sql);
	echo !empty($rs)? "<script>alert('$nome, Inserido com sucesso');</script>" : "Falha";
}
?>

 

Postado

Olá!

1 hora atrás, Medivh disse:

<?php include "funcao.php"; @$nome=inserir($_GET['nome']); ?>

O trecho acima é executado assim q a página é carregada.
A variável $_GET, só pega variáveis da url
A variável $_POST é que pegaria os dados 'post'ados do formulário.

 

Uma boa prática, é separar a lógica da apresentação (todo o php deve ser executado antes de qualquer coisa ser entregue para o browser). O php, é executado no servidor. E apenas text é entregado para o browser(que interpreta html, css, js).

 

Para executar sua função, somente se algo já foi postado, o sr. pode tentar assim:
 

<?php
	// se foi postada uma variável chamada 'nome'
	if(isset($_POST['nome'])){
      // inclua o arquivo funcao.php
	  include "funcao.php";
      
      // execute a função
	  inserir($_POST['nome']);
    }
?>

<form method="post">
	<fieldset>
		<legend>Cadastro</legend>
		Nome:<input type="text" name="nome"><br>
			 <input type="submit" value="Enviar">
	</fieldset>
</form>

 

Postado

@washalbano

Fiz dessa forma que você me explicou, mas agora está dando o seguinte erro:

 

Fatal error: Cannot redeclare inserir() (previously declared in C:\...\crudv2\funcao.php:9) in C:\...\crudv2\funcao.php on line 13

 

Como poderia corrigir esse erro?

 

<?php 
	if(isset($_POST['nome'])){
		include "funcao.php";
		inserir($_POST['nome']);
	}
?>
<form method="POST">
	<fieldset>
		<legend>Cadastro</legend>
		Nome:<input type="text" name="nome"><br>
			 <input type="submit" value="Enviar">
	</fieldset>
</form>

 

<?php 
	ini_set('display_errors',1);
	ini_set('display_startup_erros',1);
	error_reporting(E_ALL);

	include "conexao.php";
	include "formulario.php";

	function inserir($nomes){
		$sql="INSERT INTO crud (nome) VALUES ('$nome')";
		$rs=mysqli_query($link,$sql);
		echo !empty($rs)? "<script>alert('$nome, Inserido com sucesso');</script>" : "Falha";
	}
?>

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!