Ir para conteúdo
  • 0
Jack Oliveira

Como pegar Dados da tabela para pagina que esta em html com javascript {{ title }}

Pergunta

 

 

Ola pessoal boa tarde preciso de um favor de vocês se assim for possível!!

 

Seguinte  tenho uma página que ela esta em apenas em HTML porem preciso pegar umas informações do banco de dados e não sabendo como trazer os

dados das tabelas para esta página canais.html, talvez sej ate simples em fazer isso. Mais eu não estou sabendo de como trazer estas informações ai

 

OBS: esta página de html precisa manter da forma que esta o codigo ai apenas usar uma forma de usar as informações nela 

bom espero que tenha entendo o que preciso aqui...

 

segue o código 

 

Pagina canais.html

<!DOCTYPE html>
<html lang="pt-BR">
	<head>
		<meta charset="UTF-8">
		<meta name="language" content="pt-BR">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<link rel="icon" href="{{ favicon }}">
      
 		{{ google_analytics }}
      
<title>{{ title }}</title>

<link rel="canonical" href="{{ url }}">

<meta name="description" content="{{ description }}">

<meta property="og:site_name" content="{{ site_name }}">
<meta property="og:title" content="{{ title }}">
<meta property="og:type" content="Website">
<meta property="og:url" content="{{ url }}">
<meta property="og:description" content="{{ description }}">
<meta property="og:image" content="{{ image }}">

<meta name="twitter:title" content="{{ title }}">
<meta name="twitter:url" content="{{ url }}">
<meta name="twitter:description" content="{{ description }}">
<meta name="twitter:site" content="{{ app_url }}">
<meta name="twitter:image" content="{{ image }}">

<meta itemprop="title" content="{{ title }}">
<meta itemprop="name" content="{{ name }}">
<meta itemprop="url" content="{{ url }}">
<meta itemprop="description" content="{{ description }}">
<meta itemprop="image" content="{{ image }}">

<meta property="fb:app_id" content="{{ fb_app_id }}">
<meta name="og:image:width" content="590">
<meta name="og:image:height" content="auto"> 
      
<link rel="stylesheet" href="{{ url }}assets/css/app_style.css"> 
<link rel="stylesheet" href="{{ url }}assets/style.css">  
      
      <!-- Pensei em chamar atraves de um script   -->
<script type="application/javascript" src="{{ url }}assets/js/script.js"></script> 
      
	  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
	  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
	  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>      
	<style>
		#container-wrapper-1 {background-size:cover;background-position:left top;background-image : url('images/{{ bg2 }}?v=1gr61cu');}
		#container-wrapper-2 {background-size:cover;background-position:left top;background-image : url('images/{{ bg3 }}?v=1gr61cu');}
		#container-wrapper-3 {background-size:cover;background-position:center top;background-image : url('images/{{ bg4 }}?v=1gr673m');}
		div#preloader { position: fixed; left: 0; top: 0; z-index: 999; width: 100%; height: 100%; overflow: visible; background: white no-repeat center center; }
		
		
		
.btn-800 {
    background-color: {{ background_color1 }};
    border-color: {{ border_color1 }};
  color: {{ color1 }};
 font-size:25px!important;
 margin: 10px;
  }
  .btn-800:hover {
    color: {{ color2 }};
    background-color: {{ background_color2 }};
    border-color: {{ border_color2 }};
    margin: 10px;
	}

.solucion {
  background-color: {{ background_color }};
  border-color: {{ border_color }};
  color: {{ color }};
width: 236px; 
 font-size:25px!important;
margin: 10px;
display: block;
text-align: center;
  }
  
  .solucion:hover {
    color: #fff;
    background-color: {{ background_color }};
    border-color: {{ border_color }};
    
width: 236px; 
margin: 10px; 
display: block; 
text-align: center; 
	}	
	</style>      
      
      
 	</head>

	<body> 
<div class="card">
    <div class="card-header white">
      <strong> {{ titulo_informacao }} </strong>
      <p> {{ resumo }} </p>
    </div>
  
	<p style="text-align: center; line-height: 2.05;">
      <span style="font-size: 20px;">{{ canais }}</span>
  </p>
	<p style="text-align: center; line-height: 2.05;">
      <strong>
        <span style="font-size: 30px;">{{ play }}</span>
      </strong>
  </p>  
</div>
      
  </body>
  
</html>

Então seria isso ai, 

só mais uma obs: toda vez que ser inserido ou atualizado os dados no banco que as informações seja atualizada tbm...

 

 

Desde de já fico no aguardo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

9 respostas a esta questão

Recommended Posts

  • 0

Qual a linguagem back-end? Essa informação é vital.

 

De qualquer forma a duas alternativas.

1 (A mais correta e sensata) Renderizar a página e entregar para o usuário tudo completo, acredito que conseguiria fazer algo para isso usando um arquivo .html e alimentando os dados através do PHP.

2 (O menos eficiente) Pré renderizar a página, pós seu carregamento redefinir todos os valores através do javascript. O problema disso é justamente você ter que renderizar um padrão e substituir tudo depois de carregado. É até simples demais porém ineficiente tanto em usabilidade quanto em desempenho.

 

 

Em 27/12/2021 at 15:25, Jack Oliveira disse:

só mais uma obs: toda vez que ser inserido ou atualizado os dados no banco que as informações seja atualizada tbm

Aí você re-executa a coisa toda usando websocket

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
9 horas atrás, Omar~ disse:

Qual a linguagem back-end? Essa informação é vital.

 

De qualquer forma a duas alternativas.

1 (A mais correta e sensata) Renderizar a página e entregar para o usuário tudo completo, acredito que conseguiria fazer algo para isso usando um arquivo .html e alimentando os dados através do PHP.

2 (O menos eficiente) Pré renderizar a página, pós seu carregamento redefinir todos os valores através do javascript. O problema disso é justamente você ter que renderizar um padrão e substituir tudo depois de carregado. É até simples demais porém ineficiente tanto em usabilidade quanto em desempenho.

 

 

Aí você re-executa a coisa toda usando websocket

 

Ola @Omar~ ela sera mostrada no FRONT

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Bom, eu presumo que a linguagem back-end seja o PHP.

 

Começando eu resumir o html só para alguns campos, mas já dar para ver como a coisa vai funcionar.

Então o arquivo.html:

Spoiler

<!DOCTYPE html>
<html lang="pt-BR">
    <head>
        <meta charset="UTF-8">
        <meta name="language" content="pt-BR">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="icon" href="{{ favicon }}">

        <title>{{ title }}</title>

        <meta name="description" content="{{ description }}">
        <link rel="stylesheet" href="{{ url }}assets/css/app_style.css">

        <script type="application/javascript" src="{{ url }}assets/js/script.js"></script> 
        <script>
            {{ google_analytics }}
        </script>
        <style>
            .card {
                background-color: {{ background_color1 }};
                color: {{ color1 }}
            }
        </style>
    </head>

    <body> 
        <div class="card">
            <!--
                A TAG <strong> foi removida no HTML 5
                Os navegadores ainda a reproduzem porque ainda existem
                centenas de milhares de páginas que não são html 5
                Mas será removida em um futuro breve.
            -->
            <span style="font-weight:bold"> {{ titulo_informacao }} </span>
            <p> {{ resumo }} </p>
        </div> 
    </body>
</html>

 

 

Então criei uma classe que irá pegar onde tem no html {{ alguma_coisa }} e substituir por dados vindos de um arrray no php:

Spoiler

<?php

/* Essa classe fixa o buffer do cabeçalho
 * Isso impedirá que o cabeçalho http seja entregue após executar os métodos daqui */

class RendeHtml {

    private $htmlBase;
    private $encontrarChave;
    private $substituirChave;
    private $htmlRenderizado;

    public function defineDados($arquivoHtml, $arrayDados = []) {
        $this->htmlBase = (string) $arquivoHtml;
        $this->existeHtml();
        $this->encontrarChave = [];
        $this->substituirChave = [];
        foreach ($arrayDados as $chave => $valor) {
            $this->encontrarChave[] = '{{ ' . $chave . ' }}';
            $this->substituirChave[] = $valor;
        }
        $this->substituirDados();
    }

    public function verHtml() {
        return (empty($this->htmlRenderizado) ? 'Não renderizado html de saída' : $this->htmlRenderizado);
    }

    private function existeHtml() {
        if (!file_exists($this->htmlBase)) {
            die('Erro ao encontrar arquivo html para gerar renderização');
        }
    }

    private function substituirDados() {
        ob_start();
        include($this->htmlBase);
        $fixarCabecalho = ob_get_clean();
        if (!empty($this->encontrarChave) && !empty($this->substituirChave)) {
            $this->htmlRenderizado = str_replace($this->encontrarChave, $this->substituirChave, $fixarCabecalho);
        }
    }

}

 

 

Daí então é só criar um array onde os índices terá o mesmo nome contido no que tem no html entre as chaves {{}}, os valores que serão inseridos nada mais que os valores dos índices com o mesmo nome.

Spoiler

<?php
require_once (__DIR__ . DIRECTORY_SEPARATOR . 'RendeHtml.php');

$vai_no_html = [ // Quais os dados vão ser adicionados ao html
    'favicon' => 'icone.ico',
    'title' => 'título da página',
    'description' => 'Descrição qualquer',
    'url' => 'https://endereco.com/',
    'google_analytics' => 'console.log(\'Um script javascript\')',
    'background_color1' => '#ff0000',
    'color1' => '#ffffff',
    'titulo_informacao' => 'Informação de título',
    'resumo' => 'Resumo qualquer'
];
$html = __DIR__ . DIRECTORY_SEPARATOR . 'arquivo.html'; // Endereço para o arquivo html

$renderizar = new RendeHtml();
$renderizar->defineDados($html, $vai_no_html);

echo ($renderizar->verHtml());

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
2 horas atrás, Omar~ disse:

Bom, eu presumo que a linguagem back-end seja o PHP.

Sim tudo em php  apenas esta pagina que sera so html

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Ola @Omar~ fiz aqui para ver o resultado e não mostrou não as informações

 

Ou eu estou fazer da forma incorreta..

 

Os arquivos esta assim desta forma aqui

Admin/includes/RendeHtml.php   Aqui não mudei nada esta da mesma forma que tu apresentou ai..

<?php

/* Essa classe fixa o buffer do cabeçalho
 * Isso impedirá que o cabeçalho http seja entregue após executar os métodos daqui */

class RendeHtml {

    private $htmlBase;
    private $encontrarChave;
    private $substituirChave;
    private $htmlRenderizado;

    public function defineDados($arquivoHtml, $arrayDados = []) {
        $this->htmlBase = (string) $arquivoHtml;
        $this->existeHtml();
        $this->encontrarChave = [];
        $this->substituirChave = [];
        foreach ($arrayDados as $chave => $valor) {
            $this->encontrarChave[] = '{{ ' . $chave . ' }}';
            $this->substituirChave[] = $valor;
        }
        $this->substituirDados();
    }

    public function verHtml() {
        return (empty($this->htmlRenderizado) ? 'Não renderizado html de saída' : $this->htmlRenderizado);
    }

    private function existeHtml() {
        if (!file_exists($this->htmlBase)) {
            die('Erro ao encontrar arquivo html para gerar renderização');
        }
    }

    private function substituirDados() {
        ob_start();
        include($this->htmlBase);
        $fixarCabecalho = ob_get_clean();
        if (!empty($this->encontrarChave) && !empty($this->substituirChave)) {
            $this->htmlRenderizado = str_replace($this->encontrarChave, $this->substituirChave, $fixarCabecalho);
        }
    }

}
?>

Ja aqui neste outro arquivo

Admin/rendehtml.php   Aqui apenas deixei titulo e url para fazer o teste na pagina html

<?php
    require_once ('database/config.php');
	require_once ('database/config.painel.php');
	require_once ('database/config.database..php');
	require_once ('database/config.session.php');
	require_once ('includes/funcoes.php');
	require_once ('includes/RendeHtml.php');

	$sid = new Session;
	$sid->start();
	
	if (!$sid->check()){
		Redireciona('login.php');
	}



//require_once (__DIR__ . DIRECTORY_SEPARATOR . 'RendeHtml.php');

$vai_no_html = [ // Quais os dados vão ser adicionados ao html
    'titulo' => ConfigPainel('site_nome'),
    'url' => ConfigPainel('site_url')
];
$html = __DIR__ . DIRECTORY_SEPARATOR . '../canais.html'; // Endereço para o arquivo html

$renderizar = new RendeHtml();
$renderizar->defineDados($html, $vai_no_html);

echo ($renderizar->verHtml());

?>

na pagina html apenas isso aqui conforma tu mostra na pagina html tbm

 

<title>{{ titulo }}</title>

 

Ou estou fazendo errado aqui?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Aparentemente deveria tudo funcionar como tal, tentei reproduzir o problema e a única coisa de anormal é se algum índice do array estiver vazio.

Depure os valores do array para ver:

Citar

$vai_no_html = [ // Quais os dados vão ser adicionados ao html
    'titulo' => ConfigPainel('site_nome'),
    'url' => ConfigPainel('site_url')
];
var_dump($vai_no_html);

E veja se os índices possuem algum valor.

De qualquer forma tente não usar a função ConfigPainel e escreva qualquer coisa aí para testar

Estou disponibilizando o link para do teste que fiz para você testar aí.

https://drive.google.com/file/d/1PSd5Nr2RYh8LKleIYnQgkymppf1lctcC/view?usp=sharing

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Estranho deve ser alguma configuração do apache que desconheço.

Tente então modificar a arquitetura e não usar um arquivo html e sim php. De fato fica até mais simples e prático.

 

<?php
$dados = [
    'titlo' => 'titulo da página',
    'texto' => 'um texto de teste'
];
$html = include ('estrutura.php');
echo $html;

Aí nesse estrutura.php é que você transcreve a página

<?php
$renderiza = '<!DOCTYPE html>'
. '<html lang="pt-BR">'
    . '<head>'
        . '<meta charset="UTF-8">'
        . '<title>' . $dados['titlo'] . '</title>'
    . '</head>'
    . '<body>'
        . '<p>' . $dados['texto'] . '</p>'
    . '</body>'
. '</html>';
return ($renderiza);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Estou com uma pequena dúvida se é possível ser realizado.

      Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso.

      Observação:
      Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo.
      <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div>
      Grato,

      Cesar.
    • Por belann
      Olá!
       
      Estou usando o editor quill em uma página html, sem fazer a instalação com npm, mas usando as api´s via internet com http, no entanto não consigo fazer a tecla enter funcionar para mudança de linha, tentei essa configuração abaixo, mas não funcionou.
       
      modules: {       syntax: true,       toolbar: '#toolbar-container',       keyboard: {         bindings: {           enter: {             key: 13,             handler: function(range, context) {                       quill.formatLine(range.index, range.length, { 'align': '' });             }           }  
       
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de poder tirar uma dúvida com os amigos.
       
      Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ?

      Data Digitada:  01/09/2024
       
      Exemplo:
      25/09/2024 é menor que DATA Atual  ====> mensagem: informe uma data válida.
      25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's.
       
      Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual.
       
      Grato,
       
      Cesar
    • Por Rafael Castelhano
      Olá, quero preencher um dict dinamicamente onde a chave é uma string multidimencional no dict, ex:
      var dict = {} var path = 'a.b.c' dict[path] = 55 // isso faz dict ficar desta forma {'a.b.c': 55} // mais quero que fique assim {a: {b: {c: 55}}} Como consigo alterar desta forma? 
    • Por violin101
      Caros amigos, saudações.
       
      Estou com um problema de cálculo que não estou conseguindo resolver.
       
      Tenho uma rotina em Javascript que faz o seguinte cálculo qtde x vrUnit = total.
       
      qtde   x  vrUnit    =    total
      1,23   x  1,00       =    1,23    << até aqui tudo bem.
       
      o problema seria fazer o arredondamento para cima para impedir de fazer este cálculo:
      0,01 x 0,01 = 0,0001
       
      para digitar o valor estou utilizando esta função:
       
      /*Esta função quando o usuário digitar o valor aparece * 1,23 */ function formataDigitacao(i) { //Adiciona os dados para a másrcara var decimais = 2; var separador_milhar = '.'; var separador_decimal = ','; var decimais_ele = Math.pow(10, decimais); var thousand_separator = '$1'+separador_milhar; var v = i.value.replace(/\D/g,''); v = (v/decimais_ele).toFixed(decimais) + ''; var splits = v.split("."); var p_parte = splits[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, thousand_separator); (typeof splits[1] === "undefined") ? i.value = p_parte : i.value = p_parte+separador_decimal+splits[1]; } /*Esta função faz a multiplicação entre Valor Unitário X Quantidade *faz a multiplicação correta */ function calcProd(){ //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Obter valor digitado do produto var valor_unit = document.getElementById("vlrunit").value; //Remover ponto e trocar a virgula por ponto while (valor_unit.indexOf(".") >= 0) { valor_unit = valor_unit.replace(".", ""); } valor_unit = valor_unit.replace(",","."); //Calcula o Valor do Desconto if (valor_unit > 0 && prod_qtde > 0) { calc_total_produto = (parseFloat(valor_unit) * parseFloat(prod_qtde)); var numero = calc_total_produto.toFixed(2).split('.'); //<<== aqui faço o arredondamento das casas decimais de 1,234 p/ 1,23 numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("vlrtotal").value = numero.join(','); } else { if (valor_unit > 0) { document.getElementById("vlrtotal").value = document.getElementById("vlrunit").value; } else { document.getElementById("vlrtotal").value = "0,00"; } } } Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.