Ir para conteúdo

POWERED BY:

Arquivado

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

El Kabong

Atualizar <table> sem dar refresh na página !

Recommended Posts

Olá,

 

Sou novo na área do PHP, AJAX, Java Script, jQuery e afins.

 

Preciso criar uma atualização de página sem que o refresh seja executado.

 

Isso deve acontecer quando um combobox for alterado.

 

Exemplo:

_________________________________

 

Cadastro de Departamentos

 

Empresa: Teste // (é um combobox)

 

Resultado

 

Empresa Departamento Departamento Pai

Teste Financeiro

Teste Contas a Pagar Financeiro

Teste Contas a Receber Financeiro

_________________________________

 

Ao selecionar a empresa, devo trazer todos os departamentos já cadastrados para ela, porém, esse resultado está e um <table>. Os exemplos que vi por aí retornam em uma <div>.

 

Sabem se é possível retornar para um <table> ?

 

Até fiz algo, mas ele retorna todas as informações em uma coluna. Na verdade acho que ele nem colocou dentro da tabela, colocou abaixo.

 

Empresa
Vitorino

 

Empresa - Departamento - Departamento Pai

6 - 1 - TI

6 - 2 - Fiscal
6 - 3 - Produção
6 - 4 - Faturamento
6 - 5 - Controladoria
6 - 6 - Qualidade
6 - 7 - Compras
6 - 8 - Estoque
6 - 9 - Engenharia
6 - 10 - Almoxarifado
6 - 11 - Importação
6 - 12 - Vendas

 

Segue os códigos que montei:

 

________________________

index.php

 

<?php
include_once "../../conecta.php";
include_once "../../auxiliar.php";
$_SESSION['cdEmpresa'] = 1;
$cdParceiroDepartamento = 0;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="funcs.js"></script>
<link href='estilo.css' rel="stylesheet" type="text/css">
</head>
<body>
<strong>Empresa</strong><br />
<input type='hidden' name='cdParceiroDepartamento_OLD' value='<?php echo $cdParceiroDepartamento;?>'>
<span id='cdParceiroDepartamentoSPAN'>
<?php montaListaSuspensa($conexao, 'PN', $cdParceiroDepartamento, 'cdParceiroDepartamento', '','','4','S', 'onChange="buscarNoticias(this.value);"'); ?>
</span>
<script type='text/javascript'>
var cdParceiroDepartamentoSPAN = new Spry.Widget.ValidationSelect('cdParceiroDepartamentoSPAN', "none", {isRequired:true});
</script>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr class="cabecalhoTabela">
<td>Parceiro</td>
<td>Departamento</td>
<td>Departamento Pai</td>
</tr>
<tr id="resultado"></tr>
</table>
<br /><br />
<div id="conteudo"></div>
</body>
</html>
_____________________
funcs.js
var req;
function buscarDepartamento(valor) {
// Verificando Browser
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
// Arquivo PHP juntamente com o valor digitado no campo (método GET)
var url = "busca.php?valor="+valor;
// Chamada do método open para processar a requisição
req.open("Get", url, true);
// Quando o objeto recebe o retorno, chamamos a seguinte função;
req.onreadystatechange = function() {
// Exibe a mensagem "Buscando Departamentos..." enquanto carrega
if(req.readyState == 1) {
document.getElementById('resultado').innerHTML = 'Buscando Departamentos...';
}
// Verifica se o Ajax realizou todas as operações corretamente
if(req.readyState == 4 && req.status == 200) {
// Resposta retornada pelo busca.php
var resposta = req.responseText;
document.getElementById('resultado').innerHTML = resposta;
}
}
req.send(null);
}
function exibirConteudo(id) {
// Verificando Browser
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "exibir.php?id="+id;
// Chamada do método open para processar a requisição
req.open("Get", url, true);
// Quando o objeto recebe o retorno, chamamos a seguinte função;
req.onreadystatechange = function() {
// Exibe a mensagem "Aguarde..." enquanto carrega
if(req.readyState == 1) {
document.getElementById('conteudo').innerHTML = 'Aguarde...';
}
// Verifica se o Ajax realizou todas as operações corretamente
if(req.readyState == 4 && req.status == 200) {
// Resposta retornada pelo exibir.php
var resposta = req.responseText;
document.getElementById('conteudo').innerHTML = resposta;
}
}
req.send(null);
}
________________________
busca.php
<?php
// Incluir aquivo de conexão
include "../conecta.php";
// Recebe o valor enviado
$valor = $_GET['valor'];
$query = "SELECT T0.[cdParceiro]
,T0.[cdDepartamento]
,T0.[nmDepartamento]
FROM [bDPortalGessis].[dbo].[pg_pn_departamento] T0
WHERE T0.[cdParceiro] = " . $valor;
$resultado = sqlsrv_query($conexao, $query);
// Verifica se executou a query corretamente
if($resultado === FALSE) {
die(mysql_error()); // Apresenta o select executado
}
// Exibe todos os valores encontrados
while ($departamentos = sqlsrv_fetch_array($resultado, SQLSRV_FETCH_ASSOC)) {
echo "<a href=\"javascript:func()\" onclick=\"exibirConteudo('".$departamentos['cdDepartamento']."')\">" . $departamentos['cdParceiro'] . " - " . $departamentos['cdDepartamento'] . " - " . $departamentos['nmDepartamento'] . "</a><br />";
}
// Acentuação
header("Content-Type: text/html; charset=ISO-8859-1",true);
?>
____________________
exibir.php
<?php
// Incluir aquivo de conexão
include "../conecta.php";
// Recebe a id enviada no método GET
$id = $_GET['id'];
$query = "SELECT T0.[cdParceiro]
,T0.[cdDepartamento]
,T0.[nmDepartamento]
FROM [bDPortalGessis].[dbo].[pg_pn_departamento] T0
WHERE T0.[cdParceiro] = " . $id;
$resultado = sqlsrv_query($conexao, $query);
$noticia = mysql_fetch_object($sql);
echo $noticia['cdParceiro'];
echo $noticia['cdDepartamento'];
echo $noticia['nmDepartamento'];
header("Content-Type: text/html; charset=ISO-8859-1",true);
?>

 

Agradeço desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Lucas,

 

Obrigado pela resposta. É javascript sim.

 

Encontrei meu problema e consegui resolver.

 

No arquivo busca.php estava montando link´s para o retorno, alterei para retorna uma <table> e no index.php eu estava colocando o resultado em uma <div>, também alterei para retornar em uma <table>. O arquivo funcs.js ficou igual e o exibir.php não precisei mais.

 

Segue como ficou. Desculpe pelo código, não conhecia as TAG´s.

 

index.php

 

<?php
    include_once "../../conecta.php";
    include_once "../../auxiliar.php";
 
    $_SESSION['cdEmpresa'] = 1;
    $cdParceiroDepartamento = 0;
?>
 
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="funcs.js"></script>
        <link href="estilo.css" rel="stylesheet" type="text/css">
    </head>
 
<body>
    <strong>Empresa</strong><br />
    <input type='hidden' name='cdParceiroDepartamento_OLD' value='<?php echo $cdParceiroDepartamento;?>'>
    <span id='cdParceiroDepartamentoSPAN'>
        <?php montaListaSuspensa($conexao, 'PN', $cdParceiroDepartamento, 'cdParceiroDepartamento', '','','4','S', 'onChange="buscarNoticias(this.value);"'); ?>
    </span>
    <script type='text/javascript'>
        var cdParceiroDepartamentoSPAN = new Spry.Widget.ValidationSelect('cdParceiroDepartamentoSPAN', "none", {isRequired:true});
    </script>
 
        <fieldset ><legend>Departamentos Cadastrados</legend>
            <table id="resultado" class="tablesorter" width='100%' border='0' cellspacing='2' cellpadding='0'>
            </table>
        </fieldset>
</body>
</html>

busca.php

 

<?php
    include_once "../conecta.php";
    include_once "../controlaSessao.php";

    $idCorLinha = "";
    $nrLinha = 0;

    if (!empty($_GET["cdParceiroDepartamento"])) {
        $cdParceiroDepartamento = $_GET["cdParceiroDepartamento"];
        $idParam = "1";
    } else {
        $cdParceiroDepartamento = 'NULL';
        $idParam = "2";
    }

    // Monta a query para a pesquisa, busca todos os parceiros, sem filtro
    $query = "
             SELECT DISTINCT 
                    T0.[cdParceiro]
                   ,T0.[cdDepartamento]
                   ,T0.[nmDepartamento]
                   ,T2.[nmFantasia]
                   ,CASE WHEN T0.[cdDepartamentoPai] IS NULL THEN  
                        NULL
                    ELSE
                        T1.[nmDepartamento]
                    END AS nmDepartamentoPai
            FROM    [PG_PN_DEPARTAMENTO] T0
            INNER JOIN [PG_PN_DEPARTAMENTO] T1
                    ON (T0.[cdEmpresa]  = T1.[cdEmpresa]
                   AND  T0.[cdParceiro] = T1.[cdParceiro]
                   AND (T0.[cdDepartamentoPai] = T1.[cdDepartamento] OR T0.[cdDepartamentoPai] IS NULL))
            INNER JOIN [PG_PARCEIRO_NEGOCIO] T2 ON (T1.[cdEmpresa] = T2.[cdEmpresa] AND T1.[cdParceiro] = T2.[cdParceiro])
            WHERE  T0.[cdEmpresa]  = " . $_SESSION['cdEmpresa'] . "
              AND  ((T0.[cdParceiro] = " . $cdParceiroDepartamento . " AND 1 = " . $idParam . ")
               OR   (2 = " . $idParam . "))
            ORDER BY T2.[nmFantasia], T0.[nmDepartamento]";

    $resultado = sqlsrv_query($conexao, $query) or die("Não foi possível executar a consulta. SQL: $query");

    echo " <thead>
                <tr class='cabecalhoTabela'>
                    <td align='center'>Alt.</td>
                    <td align='center'>Exc.</td>
                    <th>Parceiro</th>
                    <th>Departamento</th>
                    <th>Departamento Pai</th>
                </tr>
            </thead>
            <tbody> ";
 
    // Exibe todos os valores encontrados
    while ($departamentos = sqlsrv_fetch_array($resultado, SQLSRV_FETCH_ASSOC)) {
         echo " <tr class='$idCorLinha' >
                 <td>" . htmlentities($linha["nmFantasia"]) . "</td>
                 <td>" . htmlentities($linha["nmDepartamento"]) . "</td>
                 <td>" . htmlentities($linha["nmDepartamentoPai"]) . "</td>
               </tr> ";
   }
    echo "</tbody>";

    sqlsrv_free_stmt($resultado);
?>
 

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.