Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera estou criando uma aplicação OO no padrão MVC usando como template para a camada de visão Smarty. Na aplicação tenho uma tela que é a de busca, dai pensei em usar ajax, estive olhando esta matéria - http://imasters.com.br/artigo/5214/jav...teca_prototype/
Acontece que no exemplo da matéria a página busca.php o retorno é um printf com tags html certo. Já a minha aplicação eu retorno para a camada de controle um objeto, dai como trabalhar este objeto como smarty e a prototype?. Alguém sabe como resolver o boró?.
T+
Ae, eu vi sua msg e estou lhe respondendo.
você disse que sua aplicaçao retorna: "Já a minha aplicação eu retorno para a camada de controle um objeto"
Tem como você postar um exemplo deste "objeto" pra gente ver aki?
Falow....
>
Galera estou criando uma aplicação OO no padrão MVC usando como template para a camada de visão Smarty. Na aplicação tenho uma tela que é a de busca, dai pensei em usar ajax, estive olhando esta matéria - http://imasters.com.br/artigo/5214/jav...teca_prototype/
Acontece que no exemplo da matéria a página busca.php o retorno é um printf com tags html certo. Já a minha aplicação eu retorno para a camada de controle um objeto, dai como trabalhar este objeto como smarty e a prototype?. Alguém sabe como resolver o boró?.
T+
PRINT_R DO OBJETO
>
Array
(
[0] => EContato Object
(
[idContato:private] => 1392
[nome] => xxxxxxxxx
[sobrenome:private] =>
[email:private] => xxxxxxxxxxx@xxxxxxx
[telefone:private] =>
[erroValidacao] =>
)
[1] => EContato Object
(
[idContato:private] => 1391
[nome] => xxxxxxxxx
[sobrenome:private] =>
[email:private] => xxxxxxxxxxx@xxxxxxx
[telefone:private] =>
[erroValidacao] =>
)
[2] => EContato Object
(
[idContato:private] => 1390
[nome] => xxxxxxxxx
[sobrenome:private] =>
[email:private] => xxxxxxxxxxx@xxxxxxx
[telefone:private] =>
[erroValidacao] =>
)
)
Camada controle
//Controle
public function listarEmail($dados){
global $smarty;
$oNListarEmail = new NListar();
$oEMensagem = new EMensagem();
$oArrayContato = $oNListarEmail->listarTodosEmails();
if(!empty($oArrayContato[0]->Larray)){
if($oArrayContato[0]->Larray[0] instanceof EContato){
$smarty->assign("contato",$oArrayContato[0]->Larray);
$smarty->assign("titulo","Lista de Contatos");
$smarty->display(SISNEWSLETTER_DIR."templates/semantica/AListarContatos.tpl");
}
}elseif(empty($oArrayContato[0]->Larray) and isset($oArrayContato[4])){
$oEMensagem->setTipo("error");
$oEMensagem->setTitulo("Não foi encontrado o item pesquisado!");
$smarty->assign("msg",$oEMensagem);
$smarty->assign("oELista",$email);
$smarty->assign("cmd","listarEmail");
$smarty->display(SISNEWSLETTER_DIR."templates/semantica/AListarContatos.tpl");
} else {
$oEMensagem->setTipo("error");
$oEMensagem->setTitulo("Não existe nenhum E-mail Cadastrado!");
$smarty->assign("msg",$oEMensagem);
$smarty->assign("oELista",$email);
$smarty->assign("cmd","listarEmail");
$smarty->display(SISNEWSLETTER_DIR."templates/semantica/AListarContatos.tpl");
}
}//Value Objetct(que chamo de Entidade exemplo new EContato)
private $idContato;
public $nome;
private $sobrenome;
private $email;
private $telefone;
public $erroValidacao;
public function mapear($Larray) {
$this->idContato= $Larray->fields['id'];
$this->nome = $Larray->fields['nome']);
$this->sobrenome= $Larray->fields['sobrenome'];
$this->email = $Larray->fields['email'];
$this->telefone = $Larray->fields['telefone'];
}
public function setId($idContato){
$this->idContato = $idContato;
}
public function getId(){
return $this->idContato;
}
public function setNome($nome){
$this->nome = $nome;
}
public function getNome(){
return $this->nome;
}
public function setEmail($email){
$this->email = $email;
}
public function getEmail(){
return $this->email;
}$busca = "SELECT count(*) FROM boletim";
$qtdeLinhas = $this->banco->Execute($busca);
$resultBusca = $qtdeLinhas->fields['count(*)'];
$totalRegistro = $paginacao->totalRegistro($resultBusca);
$linkPagina = $paginacao->LinkPorPagina(5);
$qtdeRegistroPagina = $paginacao->qtdeRegistroPorPagina(15);
$qtdeRegistros = $paginacao->qtdeRegistro();
$sql = "SELECT id, nome, email ";
$sql .= "FROM boletim ";
$sql .= "ORDER BY id DESC LIMIT ".$qtdeRegistros.", ".$qtdeRegistroPagina."";
$rs = $this->banco->Execute($sql);
if($rs != false) {
while(!$rs->EOF) {
//Cria Objeto Lista Contato
$oEContato = new EContato();
$oEContato->mapear($rs);
$rs->MoveNext(); //Move para o proximo registro.
$oArrayContato[] = $oEContato;
unset($oEContato);
}
}
return $oArrayContatoPRINT_R DO OBJETO que é o tipo do retorno em AJAX?
você deveria mudar isto, em vez de usar PRINT_R deveria usar algo como json_encode, veja o exemplo:
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
O exemplo acima irá imprimir:
{"a":1,"b":2,"c":3,"d":4,"e":5}
dai você atribui em uma variavel JavaScript e poderá acessar o objeto desta forma:
var teste = respostaDoAjax();
alert(teste.a);
isto irá aparecer o valor 1 na tela.
Falow... ;)
O print_r coloquei só para lhe mostrar(debug) como está montado o objeto, eu não retorno um print_r, mas um array com os objetos, observa na camada de negócio tem um
RETURN $oArrayContatos
, que volta para a camada de controle
> $oArrayContato = $oNListarEmail->listarTodosEmails();
tendo como retorno um array de objetos saca. Minha dificuldade é, pegar este array de objetos e trabalha-los com o ajax.O print_r coloquei só para lhe mostrar(debug) como está montado o objeto, eu não retorno um print_r, mas um array com os objetos, observa na camada de negócio tem um
RETURN $oArrayContatos
, que volta para a camada de controle
> $oArrayContato = $oNListarEmail->listarTodosEmails();
tendo como retorno um array de objetos saca. Minha dificuldade é, pegar este array de objetos e trabalha-los com o ajax.
O print_r coloquei só para lhe mostrar(debug) como está montado o objeto, eu não retorno um print_r, mas um array com os objetos, observa na camada de negócio tem um
RETURN $oArrayContatos
, que volta para a camada de controle
> $oArrayContato = $oNListarEmail->listarTodosEmails();
tendo como retorno um array de objetos saca. Minha dificuldade é, pegar este array de objetos e trabalha-los com o ajax.Ae Alexsandro XPT deu erro na postagem, dai respondeu três vezes a mesma coisa, basta observar o poste que foi postado nesta hora: Hoje, 17:43 o último pode deixar de lado, senão pode confundi
Æ, entao porque nao tentas algo com JSON?
você entao faz o retorno assim?
RETURN 'var ajaxretorno = ' . json_encode($oArrayContatos);
Dai vai poder acessar a variavel ajaxretorno via javascript na sua pagina.
Falow
Ae Alexsandro XPT deu erro na postagem, dai respondeu três vezes a mesma coisa, basta observar o poste que foi postado nesta hora: Hoje, 17:43 o último pode deixar de lado, senão pode confundi
www.tableless.com.br/ajax/