Ir para conteúdo

POWERED BY:

Arquivado

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

Ghean

Atualizar table

Recommended Posts

como faço para atualizar apenas uma coluna de uma table?

 

é possivel isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá, mas você vai ter que mandar atualizar linha por linha da coluna,

me passe certinho o que você quer que te ajudo a montar o script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho uma listagem de pedidos, nessa listagem tenho uma coluna chamada status da transação.

 

o conteudo dessa coluna,"status da transação", é o retorno de uma xml.

 

Esse xml é gerado quando faço uma consulta no sistema do Pagamento Certo (Locaweb)

 

O que quero é que após ser alterado o status no sistema da locaweb seja atualizado esse xml e a coluna ao qual ele se refere.

 

Dei uma olhada na documentação do jquery e vi que posso usar a função $.each().

 

Fiz um teste com um array, onde quardo o id do pedido e seu status.

 

Mas não consegui fazer isso usando a função $.ajax() para colocar um timer e rodar essa função $.each();

 

Então como devo criar a página de retorno?

 

Segue um exemplo simples que fiz usando o $.each(), mais sem o timer de atualização.

 

<script type="text/javascript">
	$(function() {
		var arrStatus = { 
  			1 : 'Aguardando pagamento', 
  			4 : 'Não pago',
			3 : 'Aguardando pagamento',
			2 : 'Em análise' 
		}; 
			
		$.each(arrStatus, function(key, value) { 			  
			 $('#pedido_'+key).html(value); 
		});
	})
</script>

<table>
	<tr>
    	<td>Pedido 1</td>
        <td id="pedido_1"></td>
    </tr>
    <tr>
    	<td>Pedido 2</td>
        <td id="pedido_2"></td>
    </tr>
    <tr>
    	<td>Pedido 3</td>
        <td id="pedido_3"></td>
    </tr>
    <tr>
    	<td>Pedido 4</td>
        <td id="pedido_4"></td>
    </tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você pega o arrstatus?

 

o $ajax() funcina parecido com load e get,

ou seja ele puxa o resultado de uma outra página,

o que você pode fazer é 1 outro arquivo com a função que checa o status,

e o ajax sendo enviado para ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja usei as funções $.ajax(), $.get() e $.post(), mas não estou conseguindo justamente pegar os valores e jogar para o arrStatus;

 

Tentei no retorno da pagina de verificação dos status o seguinte:

<?php
echo "var arrStatus = { 1 : 'Aguardando pagamento', 4 : 'Não pago', 3 : 'Aguardando pagamento', 2 : 'Em análise' }; 
?>

e no javascript

 

$.ajax({ 
	url: "statusPedidos.php", 
	type: "post", 
	success: function(data){		
		$.each(data, function(key, value) { 			  
			$('#idade_'+key).html(value); 
		});
	}
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue código que estou usando pra fazer a consulta na locaweb, esse script é sugerido por eles:

 

class Parameters { }

function consulta_transacao($idTransacao = '') {
		
	$resultado = '';

	// Endereços do Pagamento Certo
	$wsPagamentoCertoLocaweb = "https://www.pagamentocerto.com.br/vendedor/vendedor.asmx?WSDL"; // Web Service para consulta da transação

	// Define os valores de retorno
	$chaveVendedor = 'minha chave'; // Chave do vendedor

	if (trim($idTransacao) != '') {

		// Inicializa o cliente SOAP
		$soap = @new SoapClient($wsPagamentoCertoLocaweb, array(
					'trace' => true,
					'exceptions' => true,
					'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,
					'connection_timeout' => 1000
		));

		// Postagem dos parâmetros
		$parms = new Parameters();
		$parms->chaveVendedor = utf8_encode($chaveVendedor);
		$parms->idTransacao = utf8_encode($idTransacao);

		// Resgata o XML de retorno do processo
		$XMLresposta = $soap->ConsultaTransacao($parms);
		$XMLresposta = $XMLresposta->ConsultaTransacaoResult;

		// Carrega o XML
		$objDom = new DomDocument();
		$loadDom = $objDom->loadXML($XMLresposta);

		// Resgata os dados iniciais da transação
		$nodeCodRetornoConsulta = $objDom->getElementsByTagName('CodRetorno')->item(0);
		$CodRetornoConsulta = $nodeCodRetornoConsulta->nodeValue;

		$nodeMensagemRetornoConsulta = $objDom->getElementsByTagName('MensagemRetorno')->item(0);
		$MensagemRetornoConsulta = $nodeMensagemRetornoConsulta->nodeValue;

		if ($CodRetornoConsulta == '15') {
				
			$retorno = array();

			// Resgata os dados da transação
			$nodeIdTransacao = $objDom->getElementsByTagName('IdTransacao')->item(0);
			$retorno['idtransacao'] = utf8_decode($nodeIdTransacao->nodeValue);

			$nodeCodigoTransacao = $objDom->getElementsByTagName('Codigo')->item(0);
			$retorno['codigo'] = utf8_decode($nodeCodigoTransacao->nodeValue);

			$nodeDataTransacao = $objDom->getElementsByTagName('Data')->item(0);
			$retorno['data'] = utf8_decode($nodeDataTransacao->nodeValue);

			// Resgata os dados do comprador no Pagamento Certo
			$nodeCompradorNome = $objDom->getElementsByTagName('Nome')->item(0);
			$retorno['nome'] = utf8_decode($nodeCompradorNome->nodeValue);

			$nodeCompradorEmail = $objDom->getElementsByTagName('Email')->item(0);
			$retorno['email'] = utf8_decode($nodeCompradorEmail->nodeValue);

			$nodeCompradorCpf = $objDom->getElementsByTagName('Cpf')->item(0);
			$retorno['cpf'] = utf8_decode($nodeCompradorCpf->nodeValue);

			$nodeCompradorTipoPessoa = $objDom->getElementsByTagName('TipoPessoa')->item(0);
			$retorno['tipopessoa'] = utf8_decode($nodeCompradorTipoPessoa->nodeValue);

			$nodeCompradorRazaoSocial = $objDom->getElementsByTagName('RazaoSocial')->item(0);
			$retorno['razaosocial'] = utf8_decode($nodeCompradorRazaoSocial->nodeValue);

			$nodeCompradorCNPJ = $objDom->getElementsByTagName('Cnpj')->item(0);
			$retorno['cnpj'] = utf8_decode($nodeCompradorCNPJ->nodeValue);


			// Resgata os dados do pagamento
			$nodeMensagemModuloPagamento = $objDom->getElementsByTagName('Modulo')->item(0);
			$retorno['modulo'] = utf8_decode($nodeMensagemModuloPagamento->nodeValue);

			$nodeMensagemTipoModuloPagamento = $objDom->getElementsByTagName('Tipo')->item(0);
			$retorno['tipo'] = utf8_decode($nodeMensagemTipoModuloPagamento->nodeValue);
			$nodeProcessadoPagamento = $objDom->getElementsByTagName('Processado')->item(0);
			$retorno['processado'] = utf8_decode($nodeProcessadoPagamento->nodeValue);

			$nodeMensagemRetornoPagamento = $objDom->getElementsByTagName('MensagemRetorno')->item(0);
			$retorno['mensagemretorno'] = utf8_decode($nodeMensagemRetornoPagamento->nodeValue);

			$nodeStatusPagamento = $objDom->getElementsByTagName('Status')->item(0);
			$retorno['status'] = utf8_decode($nodeStatusPagamento->nodeValue);


			// Resgata os dados do pedido
			$nodeCodigoPedido = $objDom->getElementsByTagName('Numero')->item(0);
			$retorno['numero'] = utf8_decode($nodeCodigoPedido->nodeValue);

			$nodeValorTotal = $objDom->getElementsByTagName('ValorTotal')->item(0);
			$retorno['valortotal'] = utf8_decode($nodeValorTotal->nodeValue);

			$resultado = $retorno;

		} else {

			$resultado = "Erro: (".utf8_decode($CodRetornoConsulta).") ".utf8_decode($MensagemRetornoConsulta);

		}
	} else {
			
		$resultado = "Erro: ID da transação não informado.";

	}

	return $resultado;

}

Chamo essa função dentro de um loop onde listo os pedidos

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom imagino que esse script roda certinho?

 

se voce der um

$return = consulta_transacao($idTransacao = '< id da sua transacao>');
echo $return;

imagino que ele retorne o resultado,

 

então o segue o que deve ser feito.

 

criar um arquivo que puxa a transação

 

ajax/transacao.php

<?php

       $idTransacao = $_POST['idTransacao']; 

       $resultado = '';

        // Endereços do Pagamento Certo
        $wsPagamentoCertoLocaweb = "https://www.pagamentocerto.com.br/vendedor/vendedor.asmx?WSDL"; // Web Service para consulta da transação

        // Define os valores de retorno
        $chaveVendedor = 'minha chave'; // Chave do vendedor

        if (trim($idTransacao) != '') {

                // Inicializa o cliente SOAP
                $soap = @new SoapClient($wsPagamentoCertoLocaweb, array(
                                        'trace' => true,
                                        'exceptions' => true,
                                        'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,
                                        'connection_timeout' => 1000
                ));

                // Postagem dos parâmetros
                $parms = new Parameters();
                $parms->chaveVendedor = utf8_encode($chaveVendedor);
                $parms->idTransacao = utf8_encode($idTransacao);

                // Resgata o XML de retorno do processo
                $XMLresposta = $soap->ConsultaTransacao($parms);
                $XMLresposta = $XMLresposta->ConsultaTransacaoResult;

                // Carrega o XML
                $objDom = new DomDocument();
                $loadDom = $objDom->loadXML($XMLresposta);

                // Resgata os dados iniciais da transação
                $nodeCodRetornoConsulta = $objDom->getElementsByTagName('CodRetorno')->item(0);
                $CodRetornoConsulta = $nodeCodRetornoConsulta->nodeValue;

                $nodeMensagemRetornoConsulta = $objDom->getElementsByTagName('MensagemRetorno')->item(0);
                $MensagemRetornoConsulta = $nodeMensagemRetornoConsulta->nodeValue;

                if ($CodRetornoConsulta == '15') {
                                
                        $retorno = array();

                        // Resgata os dados da transação
                        $nodeIdTransacao = $objDom->getElementsByTagName('IdTransacao')->item(0);
                        $retorno['idtransacao'] = utf8_decode($nodeIdTransacao->nodeValue);

                        $nodeCodigoTransacao = $objDom->getElementsByTagName('Codigo')->item(0);
                        $retorno['codigo'] = utf8_decode($nodeCodigoTransacao->nodeValue);

                        $nodeDataTransacao = $objDom->getElementsByTagName('Data')->item(0);
                        $retorno['data'] = utf8_decode($nodeDataTransacao->nodeValue);

                        // Resgata os dados do comprador no Pagamento Certo
                        $nodeCompradorNome = $objDom->getElementsByTagName('Nome')->item(0);
                        $retorno['nome'] = utf8_decode($nodeCompradorNome->nodeValue);

                        $nodeCompradorEmail = $objDom->getElementsByTagName('Email')->item(0);
                        $retorno['email'] = utf8_decode($nodeCompradorEmail->nodeValue);

                        $nodeCompradorCpf = $objDom->getElementsByTagName('Cpf')->item(0);
                        $retorno['cpf'] = utf8_decode($nodeCompradorCpf->nodeValue);

                        $nodeCompradorTipoPessoa = $objDom->getElementsByTagName('TipoPessoa')->item(0);
                        $retorno['tipopessoa'] = utf8_decode($nodeCompradorTipoPessoa->nodeValue);

                        $nodeCompradorRazaoSocial = $objDom->getElementsByTagName('RazaoSocial')->item(0);
                        $retorno['razaosocial'] = utf8_decode($nodeCompradorRazaoSocial->nodeValue);

                        $nodeCompradorCNPJ = $objDom->getElementsByTagName('Cnpj')->item(0);
                        $retorno['cnpj'] = utf8_decode($nodeCompradorCNPJ->nodeValue);


                        // Resgata os dados do pagamento
                        $nodeMensagemModuloPagamento = $objDom->getElementsByTagName('Modulo')->item(0);
                        $retorno['modulo'] = utf8_decode($nodeMensagemModuloPagamento->nodeValue);

                        $nodeMensagemTipoModuloPagamento = $objDom->getElementsByTagName('Tipo')->item(0);
                        $retorno['tipo'] = utf8_decode($nodeMensagemTipoModuloPagamento->nodeValue);
                        $nodeProcessadoPagamento = $objDom->getElementsByTagName('Processado')->item(0);
                        $retorno['processado'] = utf8_decode($nodeProcessadoPagamento->nodeValue);

                        $nodeMensagemRetornoPagamento = $objDom->getElementsByTagName('MensagemRetorno')->item(0);
                        $retorno['mensagemretorno'] = utf8_decode($nodeMensagemRetornoPagamento->nodeValue);

                        $nodeStatusPagamento = $objDom->getElementsByTagName('Status')->item(0);
                        $retorno['status'] = utf8_decode($nodeStatusPagamento->nodeValue);


                        // Resgata os dados do pedido
                        $nodeCodigoPedido = $objDom->getElementsByTagName('Numero')->item(0);
                        $retorno['numero'] = utf8_decode($nodeCodigoPedido->nodeValue);

                        $nodeValorTotal = $objDom->getElementsByTagName('ValorTotal')->item(0);
                        $retorno['valortotal'] = utf8_decode($nodeValorTotal->nodeValue);

                        $resultado = $retorno;

                } else {

                        $resultado = "Erro: (".utf8_decode($CodRetornoConsulta).") ".utf8_decode($MensagemRetornoConsulta);

                }
        } else {
                        
                $resultado = "Erro: ID da transação não informado.";

        }

        echo $resultado; ?>

E na sua página principal puxa as respostas dos itens via $post()

 

$.post('ajax/transacao.php',{idTransacao:$(<valor da id>).val()},function(resposta)
                            {
                                $('#<lugar da tabela que recebe a resposta>').html(resposta);
                            }
                        );

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.