Ajax + Método em uma classe PHP

628 views
Skip to first unread message

Ellison Alves

unread,
May 31, 2010, 12:48:14 PM5/31/10
to php-brasil
Fala ai galera ! td beleza ?
Bem, eu to usando o php e gostaria de executar um método de uma classe
PHP utilizando Ajax.
To googlando aqui mas não estou conseguindo encontrar nada semelhante.
Alguém tem alguma sugestão ?

Rodrigo Cesar Nascimento

unread,
May 31, 2010, 1:10:28 PM5/31/10
to php-b...@googlegroups.com
xajax. Mas usa JS mesmo... Mais simples.


--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.




--
[]'s
Rodrigo César Costa do Nascimento

Murilo Rosa . Net --- Web Studio

unread,
May 31, 2010, 1:47:16 PM5/31/10
to php-b...@googlegroups.com
o $.post(
funciona bem para isso

Att,
Murilo Rosa . Net
http://www.murilorosa.net
+554288010692
skype: murilobiassio
msn: con...@murilorosa.net


Em 31 de maio de 2010 13:48, Ellison Alves <elliso...@gmail.com> escreveu:

--

Ellison Alves

unread,
May 31, 2010, 1:54:18 PM5/31/10
to php-b...@googlegroups.com
@rodrigo -> xajax é um framework ?
@murilo -> esse $.post é um comando do jquery ???

Bem, eu estou usando JS mesmo...sem framework.
E eu tenho umas classes PHP, queria executar alguns métodos dessas classes.
Até hj qndo usei ajax para linguagens de script (PHP, ASP) sempre faço uma requisição assincrona para uma página q tem uma salada de html+php/asp e me retorna algo para a view.
Diferente do java, q utilizo com mais frequencia, q eu consigo chamar um método somente por ajax (DWR, A4J).

Gostaria de fazer isso com o php e javascript puro mesmo...mas se não tiver alternativa, um framework é bem vindo tbm.


--
Ellison Alves de Souza

Murilo Rosa . Net --- Web Studio

unread,
May 31, 2010, 1:57:58 PM5/31/10
to php-b...@googlegroups.com
da pra fazer puro sim, porem é bem chatinho... o $.post eh uma maneira de fazer requisicoes assincronas com jquery, manda para uma pagina qlqr q esta instanciada a classe e da um return no metodo. simples e pratico


Att,
Murilo Rosa . Net
http://www.murilorosa.net
+554288010692
skype: murilobiassio
msn: con...@murilorosa.net


André Oliveira

unread,
May 31, 2010, 2:01:38 PM5/31/10
to php-b...@googlegroups.com
@Ellison A4J também é um framework

Abraço

Ellison Alves

unread,
May 31, 2010, 2:02:38 PM5/31/10
to php-b...@googlegroups.com
@André  eu sei

Bruno Reis

unread,
May 31, 2010, 2:02:23 PM5/31/10
to php-b...@googlegroups.com
provavelmente você não faz isso com java "puro" e não vai conseguir
fazer com php "puro". Mas pode conseguir com um frame que use php
"puro" ou escrever na munheca mesmo.

É relativamente simples de fazer, mas você vai ter que decidir o
formato de dados que quer de resposta.
um exemplo simples respondendo com json:
vc define 3 variáveis para mandar por ajax

classe
metodo
parametros

passa pro php. Pode serializar um json em parametros para passar tudo
de uma vez (procure por JSON.stringify).
no php você instancia dinamicamente, pega o retorno e devolve como
json. Algo assim:

$c = $_POST['classe'];
$m = $_POST['metodo'];
$pars = json_decode($_POST['parametros']);
$obj = new $c;
$retorno = $obj->$m($pars);
echo json_encode($retorno);

pode setar o mime como application/json e usar um plugin do firefox
para ver json que fica melhor ainda.
Sucesso!


Em 31 de maio de 2010 14:54, Ellison Alves <elliso...@gmail.com> escreveu:

Rodrigo Cesar Nascimento

unread,
May 31, 2010, 3:17:53 PM5/31/10
to php-b...@googlegroups.com
POis é cara... Xajax é um Classe (biblioteca) em PHP que faz as requisições assíncronas. Usa um pouco de JS tb... é bem fácil de entender.

http://xajaxproject.org/en/docs-tutorials/

Jose Wilker

unread,
May 31, 2010, 3:25:03 PM5/31/10
to php-b...@googlegroups.com
ou eu nao consegui entender, ou é mto simples. pq nao usar o jquery pra isso.

$.post, $.get ai vc pega o que quiser, =D, crie um arquivo em php q faça a chamada de um metódo que é passado por $_POST e traz o resultado em json, ai resolve todo o prol. eu axo

att,

José Wilker (JW)

"O Impossível é apenas uma questão de opinião"


2010/5/31 Rodrigo Cesar Nascimento <rodr...@gmail.com>

Murilo Rosa . Net --- Web Studio

unread,
May 31, 2010, 3:30:36 PM5/31/10
to php-b...@googlegroups.com
Se for usar o $.get eu indico a usar o $.getJSON


Att,
Murilo Rosa . Net
http://www.murilorosa.net
+554288010692
skype: murilobiassio
msn: con...@murilorosa.net


Jose Wilker

unread,
May 31, 2010, 3:36:52 PM5/31/10
to php-b...@googlegroups.com
ah sim, claro se o retorno for json, vc tem q usar o getJSON e se usar post, o quarto parametro deve ser o tipo de retorno. $.post(url,postvars,callback,typereturn);

att,

José Wilker (JW)

"O Impossível é apenas uma questão de opinião"


2010/5/31 Murilo Rosa . Net --- Web Studio <con...@murilorosa.net>

Murilo Rosa . Net --- Web Studio

unread,
May 31, 2010, 3:41:22 PM5/31/10
to php-b...@googlegroups.com
php
echo json_encode$_GET('variavel');

jquery
$.getJSON('pagina.php?variavel=variavel', function(resp){
    var resp = eval(resp);
    alert(resp);
});


Att,
Murilo Rosa . Net
http://www.murilorosa.net
+554288010692
skype: murilobiassio
msn: con...@murilorosa.net


André Melo

unread,
May 31, 2010, 3:52:43 PM5/31/10
to php-b...@googlegroups.com
Ellison,
Vc está usando algum frame php?
Se sim, veja como faz para fazer a chamada do método da sua classe pela url.
Caso não, crie um arquivo.php, instancie sua classe la dentro e "chame" o arquivo.php na sua requisição ajax. Vc fará com ja fazia antes ("Até hj qndo usei ajax para linguagens de script (PHP, ASP) sempre faço uma requisição assincrona para uma página q tem uma salada de html+php/asp e me retorna algo para a view.").
Abraço.
==================================
André Melo - 061 8174-6797
Desenvolvedor Web                              
msn: andrer...@hotmail.com            
==================================

Rodrigo Cesar Nascimento

unread,
May 31, 2010, 3:57:13 PM5/31/10
to php-b...@googlegroups.com
Eu ia indicar ele usar jquery, mas como a lista é de php achei por melhor indicar o xajax.

Jose Wilker

unread,
May 31, 2010, 4:13:41 PM5/31/10
to php-b...@googlegroups.com
oh god.

se vc usar json_encode $_GET['variavel'] vc estará pegando a var que vem da sua requisição e não um metódo existente.

se você utilizar json, pra um valor sem indice, o mesmo terá indice 0. no qual fica sem sentido, quando não é uma lista de resultados.

td isso q vc escreveu tentando passar o que eu disse, não está certo.

Jose Wilker

unread,
May 31, 2010, 4:24:19 PM5/31/10
to php-b...@googlegroups.com
o processo é simples. segue abaixo como eu faria. mas é igual neston, há mil e uma maneira de fazer.

vamos lá.

ps: estou escrevendo no email se errar algum comando corrijam por favor.

------ JAVASCRIPT ------------
wUrl = "";
wPostVars = {
param1 : 'value1'
}
$.post(wUrl,wPostVars,function(data){
alert(data.tal);
},"json");

-- PHP --
<?php
header('content-type: application/json');
if (!empty($_POST)) {
 $dados["call"] = $_POST["param1"];
$objTeste = new Teste();
if (method_exists($objTeste,$dados['call'])) {
echo json_encode($objTeste->executar());
}
}
class teste {
 function executar() { return array('tal' => 'tal') }
}
?>

bom, acho que isso funciona, mas é básicamente isso que o Ellison Alves precisa.

att,

José Wilker (JW)

"O Impossível é apenas uma questão de opinião"


2010/5/31 Jose Wilker <wil...@wilker.com.br>
Reply all
Reply to author
Forward
0 new messages