Ir para conteúdo
Fórum Script Brasil
  • 0

Invocar função php no action do form


melima

Pergunta

Boa tarde.

já realizei varias pesquisas, mas não consigo esclarecer a minha duvida. Tenho um ficheiro php com várias funções uma delas para inserir dados na BD Mysql, o que eu pretendo é no Action do form invocar apenas essa função e não o ficheiro php. No inicio faço o include do respectivo ficheiro mas depois ao invocar só a função no action ele não reconhece. Envio o meu codigo para se perceber melhor.

<?php

//Ativa o Buffer que armazena o conteúdo principal da página

ob_start();

require_once 'Common.php';

require_once 'Classe_Colaborador.php';

?>

<p align="center"><?php echo $lang['PAGE_TITLE_ADMIN2']; ?></p>

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<script type=text/javascript">

function show_alert()

{

alert("Inserido com sucesso");

}

</script>

<script>

function doPost(FormName,actionName){

var hiddenControl = document.getElementById('Classe_Colaborador');

var theForm = document.getElementById(formName);

hiddenControl.value = actionName;

theForm.submit();

}

</script>

<div>

<form action="" method="post" id="formulario" name="formulario">

<div align="center">

<b class="formulario">Nome</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input name="Nome" type="text" id="Nome"/>

<br />

<br />

<b class="formulario">SAP</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input name="SAP" type="text" id="SAP"/>

<br />

<br />

<b class="formulario">Email</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input name="Email" type="text" id="Email"/>

<br />

<br />

<b class="formulario">Conta Windows</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<input name="Conta" type="text" id="Conta"/>

<br />

<br />

<b class="formulario">Resp. Hierárquico</b>&nbsp;

<input name="Chefe" type="text" id="Chefe"/>

<br />

<br />

<br />

<br />

<input align="center" name="Submit" type="submit" value="Gravar" class="Botao" />

<input align="center" name="Cancel" type="reset" value="Cancelar" class="Botao"/>

</div>

</form>

</div>

<?php

// pagemaincontent recebe o conteudo do buffer

$pagemaincontent = ob_get_contents();

// Descarta o conteudo do Buffer

ob_end_clean();

/* Atribuição das Variáveis da página principal

* Lembrando que podem ser colocadas novas variáveis,

* conforme necessidade */

$pagetitle = "Titulo desta página";

//Include com o Template

include("./MasterPage.php");

?>

Ficheiro com a função php

<?

// Chama por include a Classe de Conex�o que criamos

include 'Classe_Conexao.php';

function getData(){

// Instanciamos o Objeto

$mysql = new conexao;

// Executa a Query desejada

//$listaclientes = $mysql->sql_query("select SAP, Nome from colaborador ");

$listaclientes = $mysql->sql_query("SELECT colaborador.SAP, colaborador.Nome, avaliacao.Status FROM colaborador INNER JOIN avaliacao ON (colaborador.ID=avaliacao.ID_Colaborador)");

// Aqui criamos um objeto chamado $clientes com os resultado

// da query que fizemos acima.

$data = array();

while($clientes = mysql_fetch_array($listaclientes)){

$data[]=$clientes;

}

return $data;

}

function Insert(){

$mysql= new conexao;

$Nome = $_POST['Nome];

$SAP = $_POST['SAP'];

$Email= $_POST['Email'];

$Conta= $_POST['Conta'];

$Chefe = $_POST['Chefe'];

$query= $mysql->sql_query("INSERT INTO Colaborador(Nome,SAP,Email,Conta_Windows,Chefe) value('$Nome','$SAP','$EMAIL','$Conta','$Chefe')");

mysql_query($query);

if($query){

echo "<script> alert('Dados inseridos com sucesso');</script>";

echo("Dados Inseridos com sucesso");

header("location:Novo_colaborador_View.php");

}

else{

echo("Erro ao inserir dados!");

}

}

function Lista(){

$mysql = new conexao;

$listaclientes = $mysql->sql_query("SELECT colaborador.Nome FROM colaborador ");

// Aqui criamos um objeto chamado $clientes com os resultado

// da query que fizemos acima.

$data = array();

while($clientes = mysql_fetch_array($listaclientes)){

$data[]=$clientes;

}

return $data;

}

function Edita()

{

$Nome=$_POST['Combo'];

$SAP=$_POST['SAP'];

$Email=$_POST['Email'];

$Conta=$_POST['Conta'];

$Chefe=$_POST['Chefe'];

$mysql= new conexao;

$query = mysqli_query("UPDATE colaborador SET SAP='$SAP', Email='$Email',Conta_Windows='$Conta',Chefe='$Chefe' WHERE Nome='$Nome'");

if($query){

echo "<script> alert('Dados inseridos com sucesso');</script>";

echo("Dados Inseridos com sucesso");

header("location:Editar_Colaborador.View.php");

}

else{

echo("Erro ao inserir dados!");

}

}

?>

Aguardo uma resposta.

Cumprimentos,

Melima

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Melima,

Acho meio difícil fazer a chamada dessa função no action. O atributo action recebe por padrão uma URL,um destino para o qual os dados serão enviados.Não creio que seja possível chamar uma função no 'action'.

Você poderia fazer algo como algum script AJAX,mas nesse caso,não teria callback e teria que executar o submit.

Funcionaria assim: Você cria uma página para executar a função,recebendo as devidas variáveis. Nessa página,instancia a classe e executa o que quer.

No action,você coloca a URL para essa página.

Isso é possível.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

você pode atribuir por variavel get e por uma condição.

eu não sei como é o teu sistema mas vamos supor que para acessar esse aruqivo seja formulario.php

então você pode fazer o seguinte

formulario.php?var=lista

(dentro do codigo php você inicia assim.)

(depois verifica qual funcao ativar)

<?php

$pagina = $_GET['var'];

if($pagina == 'lista') {

 Lista();

} else if($pagina == 'editar') {

Edita();

} else if($pagina == 'cadastrar') {

insert()

}

assim você verifica pela URL e chama a função de acordo com o que foi passado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...