El Kabong 0 Denunciar post Postado Março 18, 2014 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. EmpresaVitorino Empresa - Departamento - Departamento Pai 6 - 1 - TI 6 - 2 - Fiscal6 - 3 - Produção6 - 4 - Faturamento6 - 5 - Controladoria6 - 6 - Qualidade6 - 7 - Compras6 - 8 - Estoque6 - 9 - Engenharia6 - 10 - Almoxarifado6 - 11 - Importação6 - 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
Lucas Guima 164 Denunciar post Postado Março 18, 2014 Sua dúvida é Javascript, não é? Obs.: Utilize as tags de código para postar código. Compartilhar este post Link para o post Compartilhar em outros sites
El Kabong 0 Denunciar post Postado Março 20, 2014 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