Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, procurei uma possível solução mas nao encontrei nada parecido com meu problema...
Eu não estou muito familiarizado com webservices estou começando a usar esse tipo de requisição agora, e estou com dificuldade no seguinte:
Eu tenho que consumir uns dados de um webservice de atendimento online, para gerar os registros de todos os atendimentos, feitos dos respectivos cliente cadastrados para fazer bkp e guardar os históricos pois o mesmo sera cancelado e substituido pelo LiveZilla que é melhor e vai sair mais barato...
o suporte da ferramenta atual de atendimento online me passou um webservice para eu consumir esses dados com um altenticacao de usuario e senha e um filtro de data de inicio e termino da consulta...
estou fazendo esse consumo com AJAX e PHP, até então a requisicao e o retorno vem certo mas eu nao consigo tratar esses dados para fazer um futura inserção em um um outro banco, para ter esse histórico.
a estrutura em XML que é gerada é mais o menos assim:
<historicos>
<historico>
<id>123</id>
<nome>Diego Sanches</nome>
<nome_cliente>Fulano</nome_cliente>
<email_cliente>email@email.com.br</email_cliente>
<mensagem_inicial>email@email.com.br</mensagem_inicial>
<!-- E outros campos referente aos dados da conversa -->
<mensagens>
<mensagem>
<!-- o problema esta aqui nessa segunda parte que nao consigo individualizar -->
<texto>Nome do Atendente</texto>
<texto>Data e Hora</texto>
<texto>Mensagem Digitada</texto>
</mensagem>
</mensagens>
<historico>
<historicos>
O código que estou usando é o seguinte:
Script em AJAX em AJAX
$(function(){
$.ajax({
type: "GET",
dataType: "xml",
url: "pagina_que_requista_e_retorna.php",
success: function(xml){
$(xml).find('historico').each(function(){
$("#loading").slideUp(500, function(){
$("#content").slideDown(600);
});
var id = $(this).find('id').text();
var nome = $(this).find('nome').text();
var nome_cliente = $(this).find('nome_cliente').text();
var email_cliente = $(this).find('email_cliente').text();
var mensagem_inicial = $(this).find('mensagem_inicial').text();
var texto = $(this).find('texto').text();
$('#content').append("<h1><strong>Atendente:</strong> " + nome + " - <strong>ID Atendimento: </strong>" + id + "</h1>");
$('#content').append("<h2><strong>Cliente:</strong> " + nome_cliente + " - " + email_cliente + "</h2>");
$('#content').append("<h3>Mensagem inicial:</h3>");
$('#content').append("<p>" + mensagem_inicial + "</p>");
$('#content').append("<h3>Mensages:</h3>");
$('#content').append("<p>" + texto + "</p>");
});
},
error : function(){
// aqui tem um script que exibe mensagem quando há algum erro...
}
});
});
Script em PHP da página: pagina_que_requista_e_retorna.php
<?php
header('Content-type: application/xml');
$url = 'http://www.dominio.com.br/xml.php?dados_da_autenticacao=usuario_senha_data_inicio_data_termino';
$handle = fopen($url, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$create_file_xml = fopen('xml/teste2.xml', "w");
$write_file_xml = fwrite($create_file_xml, $buffer);
echo $buffer;
}
fclose($handle);
}
?>
Até então funciona tudo certinho e faço o tratamente no Javascript e tal, mas o retorno do valor <texto></texto> vem corrido não consigo tratar isso tipoele é contato assim:
<texto>Nome do Atendente</texto>
<texto>Data e Hora</texto>
<texto>Mensagem Digitada</texto>
e no retorno vem assim:
Nome do Atendente Data e Hora Mensagem Digitada Atendente Data e Hora Mensagem Digitada Atendente Data e Hora Mensagem Digitada Atendente Data e Hora Mensagem Digitada... e assim até terminar os registros que tem referente a esse atendente...
e eu precisa que retornasse assim:
<p>Atendente Data e Hora Mensagem Digitada</p>
<p>Atendente Data e Hora Mensagem Digitada</p>
<p>Atendente Data e Hora Mensagem Digitada</p>
se alguém puder ajudar, agradeco,, valeu!!
qualquer dúvida ou sugestão melhor para fazer essa rotina será bem vinda..
Carregando comentários...