Jump to content

chamar função dentro de um ficheiro php


acao

Recommended Posts

boas

necessito de chamar uma função que está num ficheiro que tem mais funções.

se colocar a função num ficheiro consigo executa-la, mas para economizar ficheiros cria chama-la do ficheiro funções.php.

alguma dica?.

$(function(){
		 $("input[name='UserName']").blur( function(){ // disparar a ação no submit« $("input[name='NomeDoSubmit']").click( function(){»
				 var UserName = $("input[name='UserName']").val();
				 //alert(nomeUsuario);
				 $.post('Funcoes.php',{UserName: UserName},function(data){ // a função é «ValidarUsuario»
					 //alert (data);
					 $('#resultado').html(data);//onde vou escrever o resultado
				 });

		 });
 });// fim do jquery
Edited by acao
Link to comment
Share on other sites

podes passar a função a ser executada como parâmetro.

$.post('Funcoes.php?a=funcaoaexecutar',{UserName: UserName},function(

funções.php

$funcaoaexecutar = $_GET['a'];

if($funcaoaexecutar == "dizerola") {
dizerOla();
}


function dizerOla() {

}
Edited by Devexz

Contador de calorias: caloriaspordia.com

Link to comment
Share on other sites

podes passar a função a ser executada como parâmetro.

javascript

$.post('Funcoes.php',
      {func: 'my_func',
       param1: 1,
       param2: 'string'},
      function() {
        // ...
      });

funções.php

if (isset($_POST['func']) &&
   function_exists($_POST['func'])) {
 $func = $_POST['func'];
 unset($_POST['func']);
 call_user_func_array($func, $_POST);
}

function my_func($param1, $param2) {
 $param1; // 1
 $param2; // 'string'
}
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

boas

percebi a ideia,

sempre vou ter mais um bocado de cod para cada função chamada pelo javascript, mas sempre será melhor opção do que ter um ficheiro com um pequeno trecho de codigo.

vou tentar implementar e depois dou retorno.

obrigado

cumps

acao

edit: acrescentar info.

@Happyhippyhippo,

obrigado também pela contribuição, não era o caso desta situação mas é bem vinda, futuramente precisarei.

obrigado.

fartei-me de googlar e nada, apenas vi qualquercoisa identico à info do Devexz mas apenas no ficheiro php.

agradeço aos dois.

cumps

acao

Edited by acao
Link to comment
Share on other sites

javascript

$.post('Funcoes.php',
   {func: 'my_func',
	param1: 1,
	param2: 'string'},
   function() {
	 // ...
   });

funções.php

if (isset($_POST['func']) &&
function_exists($_POST['func'])) {
 $func = $_POST['func'];
 unset($_POST['func']);
 call_user_func_array($func, $_POST);
}

function my_func($param1, $param2) {
 $param1; // 1
 $param2; // 'string'
}

só uma questão, qual o motivo de fazer unset ao POST?

edit: ah já percebi. 😄

Edited by Devexz

Contador de calorias: caloriaspordia.com

Link to comment
Share on other sites

@Happyhippyhippo,

obrigado também pela contribuição, não era o caso desta situação mas é bem vinda, futuramente precisarei.

obrigado.

espera ... a solução que apresentei é a solução do @Devexz mas mais genérica e flexivel ... afinal o que pretendes ?

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

boas

espera ... a solução que apresentei é a solução do @Devexz mas mais genérica e flexivel ... afinal o que pretendes ?

é mesmo isto o que pretendo.

apenas comentei que a do @Devexz serve e satisfaz o que necessito neste momento, e a tua solução mais genérica como referiste é bem vinda para quando necessitar de passar valores à função. que penso que é a alteração com a tua solução?

neste momento ainda não testei nada mas analisando o codigo é o que penso.

obrigado

cumps

acao

Link to comment
Share on other sites

Do ponto de vista da programação a solução do @hyppo é a mais correcta, podes também chamar a função sem ter que adicionar parâmetros obrigatoriamente à mesma, alterando para esta linha de código:

call_user_func($func);

Mas melhor do que ninguém tu deves saber qual a maneira que se adequa ao teu ficheiro.php

Contador de calorias: caloriaspordia.com

Link to comment
Share on other sites

Do ponto de vista da programação a solução do @hyppo é a mais correcta, podes também chamar a função sem ter que adicionar parâmetros obrigatoriamente à mesma, alterando para esta linha de código:

call_user_func($func);

Mas melhor do que ninguém tu deves saber qual a maneira que se adequa ao teu ficheiro.php

nop ... não existe obrigatoriedade na existência de argumentos no código que apresentei

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

boas

@Happyhippyhippo será que me pode dar uma ajuda no cod que postou, a sua dica é passar dados por poste é melhor.

nem a função consigo chamar.

segue o cod que julgo mais correcto, embora já tenha tentado de maneira diferente.

$(function(){ // declaro o início do jquery
		   $("input[name='UserName']").blur( function(){
			   alert("input");
			   //  disparar a ação no submit« $("input[name='NomeDoSubmit']").click( function(){»
				 var NomeUserName = $("input[name='UserName']").val();
				  alert("nomeUsuario");
				    //$.post('VerificarUserName.php',{UserName: NomeUserName},function(data){
				    $.post('FuncoesAv.php',{func:'VerificarUserName1',param1:UserName,param2:NomeUserName},function(data){
					 //$.post('FuncoesAv.php?func=VerificarUserName',{UserName: NomeUserName},function(data){
						 //(data);
					    alert("passou na funçao");
					 $('#resultado').html(data);//onde vou escrever o resultado
				   });

		   });
    });// fim do jquery

if (isset($_POST['func']) &&
    function_exists($_POST['func'])) {
 header('location:../registoAv.php?PassouFuncoesAv', true, 303);
 $func = $_POST['func'];
 unset($_POST['func']);
 call_user_func_array($func, $_POST);
}

function VerificarUserName1($param1, $param2){
  $userName = $param2;
 include_once('ClassConexaoAv.php');
$NovaConexao = new ConexaoAv();
$stmt = $NovaConexao->prepare("SELECT UserName FROM usuariosav WHERE UserName ='$userName'");
    $stmt->execute();

    if (count($stmt->fetchAll())> 0){
	    echo 'O UserName já existe';
    } else{
	    echo 'o username ainda não existe';
    }

}

@Devexz a sua funcionou.

Link to comment
Share on other sites

talvez porque andaste a inventar e adicionaste código estranho ao exemplo que dei ...

aonde, no meu código, existe a chamada da função header no processamento do POST ?

foi para saber se conseguia apanhar o isset. foi apenas para testar, porque até sei que com ele vai alterar a pagina.

achas que o javascript está correcto? «retirando os alert claro!»

(eu com esse codigo quero consultar a base dados e verificar se o usuario existe e retornar o echo que se encontra na função php.)

já tentei de varias maneiras mas ainda não consegui entrar na pagina aonde tenho a função.

cumps

acao

Edited by acao
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.