Ir para conteúdo

POWERED BY:

Arquivado

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

André Kohler

[Resolvido] Chamar função PHP no mesmo documento

Recommended Posts

Boa tarde pessoal,

 

Gostaria de saber se é possivel chamar uma funcao de php no mesmo documento com ajax.

 

Exemplo:

 

 

Eu tenho um select de empresa e quando seleciono a empresa eu preciso que que no outro select apareca os funcionarios da empresa. So que como eu to fazendo em MVC o meu controller se perde na hora em que peco para ele chamar a funcao em outra pagina. Dai pensei em tentar fazer a funcao na mesma pagina sem precisar de outra.

<?php 
function Carrega()
{
 //codigo	
}
}?>
<html>
<head>

	<script>
		
	$(document).ready( function() 
			{	
		
				
            $('#selEmpresa').change(function(){$('#selFuncionario').load('Carrega()//Gostaria que fosse carregado a funcao ali de cima aqui');});
            
        
			});
		
	</script>
</head>
<body>
<div id="caminho">
		
			<a href="">Relatorios</a> >> <a href="?modulo=relatorio&acao=Direcionar">Gerar Relatorio</a>
	</div><br>

<br>
	<form name="frmGerar" id="frmGerar" method="POST" enctype="multipart/form-data" action="?modulo=relatorio&acao=Gerar">
	<fieldset><legend>Gerar Relatorio</legend>
	
	<select name="selEmpresa" id="selEmpresa">
<option value="0">Escolha uma Empresa</option>
    <?php
        

       $result = mysql_query("select * from tb_empresa");

       while($row = mysql_fetch_array($result) ){
            echo "<option value='".$row['id_empresa']."'>".$row['nome']."</option>";

       }

    ?>
</select>


<select name="selFuncionario" id="selFuncionario">
    <option value="0">Escolha um Funcionario</option>
</select>

è possivel fazer isto????

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script>		

$(document).ready(function(){

$('#selEmpresa').change(function(){

$('#selFuncionario').load('Dados.php?Empresa='+$('#selEmpresa').val() );

});

});

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da forma como você está fazendo não será possível. Pois a função javascript será executada no navegador e, nesse momento, a função não estará mais disponível.

O correto é você fazer assim:

 

$('#selEmpresa').change(function(){$('#selFuncionario').load('funcao.php');});

Onde, funcao.php é o arquivo que terá o código php que deve ser executado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script>		
		$(document).ready(function(){
            $('#selEmpresa').change(function(){
                $('#selFuncionario').load('Dados.php?Empresa='+$('#selEmpresa').val() );
            });
        });
 </script>
????????

 

Da forma como você está fazendo não será possível. Pois a função javascript será executada no navegador e, nesse momento, a função não estará mais disponível.

O correto é você fazer assim:

 

$('#selEmpresa').change(function(){$('#selFuncionario').load('funcao.php');});

Onde, funcao.php é o arquivo que terá o código php que deve ser executado.

 

Pois é eu consegui fazer dedte jeito que voce acabou de citar mas sem estar no modelo MVC, mas o problema é que o meu arquivo 'funcao.php' nao é encontrado pq a hoa em que eu tento chamar ele, ele se perde no controller da aplicacao, por isso eu perguntei se era possivel fazer na mesma tela.

 

muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,

Pense na pagina que será carregado no evento load(), como uma página do seu controller. Ela deve existir no seu controller para que você possa chama-la assim. Não será um arquivo separado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso vai depender de como isso é tratado no seu código PHP. Mas, acredito que seja assim.

 

$('#selEmpresa').change(function(){$('#selFuncionario').load('?modulo=relatorio&acao=funcao&selEmpresa='+$('#selEmpresa').val() );});
O ideal é que tenha somente uma interrogação(?) na url, os outros paramêtros devem se separados por &.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use o Responder Azul: Imagem Postada

ou a 'Resposta Rápida'.

cara, se você tá trabalhando com MVC mesmo, isso que você tá querendo/tentando fazer, é pura gambiarra.

tá misturando as camadas.. completamente.. já era o MVC.

 

o controller deve devolver os dados para a VIEW, não importa se a requisição é ajax ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso vai depender de como isso é tratado no seu código PHP. Mas, acredito que seja assim.

 

$('#selEmpresa').change(function(){$('#selFuncionario').load('?modulo=relatorio&acao=funcao&selEmpresa='+$('#selEmpresa').val() );});
O ideal é que tenha somente uma interrogação(?) na url, os outros paramêtros devem se separados por &.

 

Muito obrigado pela ajuda o problema era que eu tava ao inves de & eu coloque ? depois da chamada da funcao.

 

Valew mesmo ja consegui

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.