Ir para conteúdo
santans

Gerador de paginas web

Recommended Posts

Desejo saber como crio um gerador PHP de paginas html.

Por exemplo quando alguém cria um perfil no meu site, o gerador criaria uma pagina no sistema a partir de uma pagina pre molde já feita.

no caso seria para um e-comerce.

Outro exemplo quando eu cadastro um produto e é gerada uma pagina para este tal produto.

Se houver algum sistema mais simples para me indicarem fiquem a vontade.

Nota: Não sou um programador experiente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, com php é simples desde-que saiba como salvar os registros em ordem em um banco de dados.

48 minutos atrás, santans disse:

a partir de uma pagina pre molde já feita

Nada mais é que criar a página com o layout e tudo mais, sem as informações de qualquer perfil.

Então ao acessar a página você busca os dados daquele usuário e preenche os campos com as informações daquele perfil.

 

Não tem uma forma fácil de explicar, espero que tenha compreendido, é criar uma pagina base onde os dados são colocados de acordo com os resultados de um consulta realizada.

Veja uma página assim para perfil de usuários, de um site que fiz:

Spoiler

<?php
require_once (__DIR__ . '/../../system/runtime.php');
$str = new StrClean();
$get = GlobalFilter::filterGet();
if (isset($get->action)) {
    $get->b = $get->action;
}
try {
    if (!isset($get->b)) {
        include (__DIR__ . '/default.php');
    } else {
        $profile = $str->clearUrl($get->b);
        $select = new Select();
        $select->selectQuery("register", "hash = :datauser", "datauser={$profile}");
        if ($select->selectError()) {
            throw new ConstException($select->selectError(), ConstException::SYSTEM_ERROR);
        } else if (!$select->selectCount()) {
            throw new ConstException('Dados inexistentes.', ConstException::NOT_FOUND);
        } else {
            $userData = $select->selectResult()[0];
            ?>
            <script src="lib/javascript/cidades-estados.js"></script>
            <div id="profile-data">
                <div class="font-large text-grey align-right margin-bottom-min page-title">
                    <?= ($userData->name == @$session->user->name) ? 'Meu Perfil' : 'Dados de ' . $str->longText($userData->name, 30); ?>
                </div>
                <div class="floating">
                    <div class="col-33 float-left">
                        <div class="profile-photo">
                            <?php if (empty($userData->photo)) { ?>
                                <img src="lib/images/perfil.jpg" alt="perfil" class="image-photo-big shadow" />
                            <?php } else { ?>
                                <img src="lib/uploads/<?= $userData->photo ?>?rand=<?= time(); ?>" class="image-photo-big" />
                                <?php
                            }
                            if (isset($session->user) && $session->user->id == $userData->id) {
                                ?>
                                <button class="btn-default button-block" onclick="maincore.modalGet('includes/upload_photo.inc.php', 'Foto', true);">Enviar Foto/Logo &nbsp; <i class="fa fa-picture-o"></i></button>
                            <?php } else if (isset($session->user) && $session->user->level >= 2) { ?>
                                <button class="btn-danger button-block text-white" onclick="maincore.modalGet('confirm/erase-photo.php?action=<?= $userData->hash; ?>', 'Apagar Foto', true)">Remover Foto &nbsp; <i class="fa fa-trash-o"></i></button>
                            <?php } ?>
                        </div>

                    </div>
                    <div class="over-not maximize-b font-default profile-desc">
                        <div class="row-pad">
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Nome</span>: <?= $userData->name ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">E-Mail</span>: <?= $userData->mail; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Telefone</span>: <?= $userData->contact; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Data de Registro</span>: <?= $str->invertDate($userData->joindate); ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Cidade</span>: <?= empty($userData->citie) ? 'Não Informado' : $userData->citie ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Estado</span>: <?= empty($userData->country) ? 'Não Informado' : $userData->country ?></div>
                            </div>
                            <div class="col-99 over-text">
                                <div class="input-line"><span class="bold">Endereço</span>: <?= empty($userData->district) ? 'Não informado' : $userData->district ?></div>
                            </div>
                            <?php if (isset($session->user) && ($session->user->id == $userData->id || $session->user->level >= 2)) { ?>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">Data de Revogação</span>: <?= $str->invertDate($userData->expire_date); ?></div>
                                </div>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">CPF/CNPJ</span>: <?= $userData->cpnj; ?></div>
                                </div>
                            <?php } ?>
                        </div>
                        <?php if (isset($session->user)) { ?>
                            <div class="floating margin-top">
                                <?php if ($session->user->id == $userData->id || $session->user->level >= 2) { ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-info button-block" onclick="maincore.ajaxGet('profile-data', 'modules/includes/profile_edit.inc.php?action=<?= $get->b ?>&action_b=<?= $userData->hash ?>&rand=<?= time() ?>', null);">Editar Perfil &nbsp; <i class="fa fa-paste"></i></button>
                                        </div>
                                    </div>
                                    <?php
                                }
                                if (($session->user->id != $userData->id && $userData->level >= 2) || ($session->user->level >= 2 && $session->user->id != $userData->id)) {
                                    ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-dark button-block" title="Enviar mensagem para <?= $userData->name ?>" onclick="maincore.ajaxGet('profile-data', 'modules/includes/send_msg.inc.php?action=<?= $userData->hash ?>', null)">Enviar Mensagem &nbsp; <i class="fa fa-envelope"></i></button>
                                        </div>
                                    </div>
                                <?php } ?>
                            </div>
                        <?php } ?>
                    </div>
                </div>
                <div class="margin-top">
                    <div class="bg-light padding-all-min">
                        <p class="font-medium bold">Serviço</p>
                        <p><?= $userData->job ?></p>
                    </div>
                    <div class="padding-all-min">
                        <?= empty($userData->service) ? 'Não há informações sobre o serviço prestado' : html_entity_decode($userData->service); ?>
                    </div>
                </div>
            </div>
            <script>
                function uploadPhoto() {
                    maincore.modalGet('modules/includes/upload_photo.inc.php', 'Foto do Perfil', true);
                }
            </script>
            <?php
        }
    }
} catch (ConstException $e) {
    switch ($e->getCode()) {
        case ConstException::SYSTEM_ERROR:
            echo ("<div class=\"align-center margin-tb-high font-jumbo text-red\">"
            . "<i class=\"fa fa-frown-o fa-5x\"></i>"
            . "<div class=\"padding-top\">Erro ao requisitar dados</p>Comunique ao administrador do sistema esse erro!"
            //. "<p>{$e->getMessage()}</p>" //Criar log de erros
            . "</div>");
            break;
        case ConstException::MISC_RETURN:
        case ConstException::NOT_FOUND:
            include (__DIR__ . '/not_found.php');
            break;
    }
}

 

 

Sobre gerar um arquivo para cada usuário, sim é possível e fácil de fazer.

Mas desaconselhável ficar sobrecarregando espaço com um coisa que pode se feita de forma mais prática como citei acima.

Compartilhar este post


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

Então, com php é simples desde-que saiba como salvar os registros em ordem em um banco de dados.

Nada mais é que criar a página com o layout e tudo mais, sem as informações de qualquer perfil.

Então ao acessar a página você busca os dados daquele usuário e preenche os campos com as informações daquele perfil.

 

Não tem uma forma fácil de explicar, espero que tenha compreendido, é criar uma pagina base onde os dados são colocados de acordo com os resultados de um consulta realizada.

Veja uma página assim para perfil de usuários, de um site que fiz:

  Ocultar conteúdo


<?php
require_once (__DIR__ . '/../../system/runtime.php');
$str = new StrClean();
$get = GlobalFilter::filterGet();
if (isset($get->action)) {
    $get->b = $get->action;
}
try {
    if (!isset($get->b)) {
        include (__DIR__ . '/default.php');
    } else {
        $profile = $str->clearUrl($get->b);
        $select = new Select();
        $select->selectQuery("register", "hash = :datauser", "datauser={$profile}");
        if ($select->selectError()) {
            throw new ConstException($select->selectError(), ConstException::SYSTEM_ERROR);
        } else if (!$select->selectCount()) {
            throw new ConstException('Dados inexistentes.', ConstException::NOT_FOUND);
        } else {
            $userData = $select->selectResult()[0];
            ?>
            <script src="lib/javascript/cidades-estados.js"></script>
            <div id="profile-data">
                <div class="font-large text-grey align-right margin-bottom-min page-title">
                    <?= ($userData->name == @$session->user->name) ? 'Meu Perfil' : 'Dados de ' . $str->longText($userData->name, 30); ?>
                </div>
                <div class="floating">
                    <div class="col-33 float-left">
                        <div class="profile-photo">
                            <?php if (empty($userData->photo)) { ?>
                                <img src="lib/images/perfil.jpg" alt="perfil" class="image-photo-big shadow" />
                            <?php } else { ?>
                                <img src="lib/uploads/<?= $userData->photo ?>?rand=<?= time(); ?>" class="image-photo-big" />
                                <?php
                            }
                            if (isset($session->user) && $session->user->id == $userData->id) {
                                ?>
                                <button class="btn-default button-block" onclick="maincore.modalGet('includes/upload_photo.inc.php', 'Foto', true);">Enviar Foto/Logo &nbsp; <i class="fa fa-picture-o"></i></button>
                            <?php } else if (isset($session->user) && $session->user->level >= 2) { ?>
                                <button class="btn-danger button-block text-white" onclick="maincore.modalGet('confirm/erase-photo.php?action=<?= $userData->hash; ?>', 'Apagar Foto', true)">Remover Foto &nbsp; <i class="fa fa-trash-o"></i></button>
                            <?php } ?>
                        </div>

                    </div>
                    <div class="over-not maximize-b font-default profile-desc">
                        <div class="row-pad">
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Nome</span>: <?= $userData->name ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">E-Mail</span>: <?= $userData->mail; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Telefone</span>: <?= $userData->contact; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Data de Registro</span>: <?= $str->invertDate($userData->joindate); ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Cidade</span>: <?= empty($userData->citie) ? 'Não Informado' : $userData->citie ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Estado</span>: <?= empty($userData->country) ? 'Não Informado' : $userData->country ?></div>
                            </div>
                            <div class="col-99 over-text">
                                <div class="input-line"><span class="bold">Endereço</span>: <?= empty($userData->district) ? 'Não informado' : $userData->district ?></div>
                            </div>
                            <?php if (isset($session->user) && ($session->user->id == $userData->id || $session->user->level >= 2)) { ?>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">Data de Revogação</span>: <?= $str->invertDate($userData->expire_date); ?></div>
                                </div>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">CPF/CNPJ</span>: <?= $userData->cpnj; ?></div>
                                </div>
                            <?php } ?>
                        </div>
                        <?php if (isset($session->user)) { ?>
                            <div class="floating margin-top">
                                <?php if ($session->user->id == $userData->id || $session->user->level >= 2) { ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-info button-block" onclick="maincore.ajaxGet('profile-data', 'modules/includes/profile_edit.inc.php?action=<?= $get->b ?>&action_b=<?= $userData->hash ?>&rand=<?= time() ?>', null);">Editar Perfil &nbsp; <i class="fa fa-paste"></i></button>
                                        </div>
                                    </div>
                                    <?php
                                }
                                if (($session->user->id != $userData->id && $userData->level >= 2) || ($session->user->level >= 2 && $session->user->id != $userData->id)) {
                                    ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-dark button-block" title="Enviar mensagem para <?= $userData->name ?>" onclick="maincore.ajaxGet('profile-data', 'modules/includes/send_msg.inc.php?action=<?= $userData->hash ?>', null)">Enviar Mensagem &nbsp; <i class="fa fa-envelope"></i></button>
                                        </div>
                                    </div>
                                <?php } ?>
                            </div>
                        <?php } ?>
                    </div>
                </div>
                <div class="margin-top">
                    <div class="bg-light padding-all-min">
                        <p class="font-medium bold">Serviço</p>
                        <p><?= $userData->job ?></p>
                    </div>
                    <div class="padding-all-min">
                        <?= empty($userData->service) ? 'Não há informações sobre o serviço prestado' : html_entity_decode($userData->service); ?>
                    </div>
                </div>
            </div>
            <script>
                function uploadPhoto() {
                    maincore.modalGet('modules/includes/upload_photo.inc.php', 'Foto do Perfil', true);
                }
            </script>
            <?php
        }
    }
} catch (ConstException $e) {
    switch ($e->getCode()) {
        case ConstException::SYSTEM_ERROR:
            echo ("<div class=\"align-center margin-tb-high font-jumbo text-red\">"
            . "<i class=\"fa fa-frown-o fa-5x\"></i>"
            . "<div class=\"padding-top\">Erro ao requisitar dados</p>Comunique ao administrador do sistema esse erro!"
            //. "<p>{$e->getMessage()}</p>" //Criar log de erros
            . "</div>");
            break;
        case ConstException::MISC_RETURN:
        case ConstException::NOT_FOUND:
            include (__DIR__ . '/not_found.php');
            break;
    }
}

 

 

Sobre gerar um arquivo para cada usuário, sim é possível e fácil de fazer.

Mas desaconselhável ficar sobrecarregando espaço com um coisa que pode se feita de forma mais prática como citei acima.

a sim entendi o que você quis dizer uma unica pagina que ao ser aberta carrega as informações do perfil que a pessoa que fez login, e as distribui sobre os campos ex: foto, nome, capa etc...

 

isso se aplica a produtos, sabe se na alura ensina isso eu tenho assinatura la

 

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 martinazzo
      Olá pessoal,
       
      sou novo por aqui e não sei bem como funciona, mas sei que preciso de uma ajuda kkkkk
      se puderem me dar uma mão ficaria grato;
       
      Estou tendo problemas em como pegar id de uma linha clicada em uma table, que já recebe os dados de um bd. Eu gostaria de poder editar os campos e salvar no banco de dados usando o ID da linha clicada;
       
      Vou colar o código abaixo, não reparem na bagunça kkkkk
       
      conexao.php
       
      <?php
      $server = "XXXXX";         Conferido e esta correto;
      $username = "XXXXX";  Conferido e esta correto;
      $password = "XXXXX";  Conferido e esta correto;
      $dbname = "XXXXX";     Conferido e esta correto;
      $conn = mysqli_connect($server, $username, $password, $dbname);
      ?>
       
      altera.php
       
      <?php 
      $link = mysqli_connect("XXXXXX", "XXXXX", "XXXXX", "XXXXXX"); Conferido
      $sql = "SELECT * FROM interface ";
      $consulta = mysqli_query($link, $sql);
      ?>
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <meta http-equiv="refresh" content="30">
      <link rel="stylesheet" type="text/css" href="style.css">
      <script src="sorttable.js"></script>
      <title>Dashboard</title>
      <?php 
      session_start();
      if(!isset($_SESSION['login']) and !isset ($_SESSION['senha'])){
          session_destroy();
        unset($_SESSION['login']);
        unset($_SESSION['senha']);
        header('location:index.html');
        
        }
        
      ?>

      </head>
      <body>
      <a href="index.php"><img src="img/ditec_smart_hor_150px.png"></a>
      <div class="borda_titulo">
      <h2><center>DIMILK | Equipamentos</font></h2></center></div><br /><br />
      <form name="equipamento" action="salva.php" method=post>
      <center><table id="minhaTabela" border="3" class="sortable" bgcolor="#1E90FF">
        <tr>
        <th><center>ID </center></th>
        <th><center>MAC</center></th>
        <th><center>Habilitado</center></th>
        <th><center>Descrição</center></th>
        <th><center>Altura Tarro</center></th>
        <th><center>Área Tarro</center></th>
        <th><center>Alterar</center></th>
        </tr>
        
          <?php while($registro = mysqli_fetch_assoc($consulta)){
              echo '<tr bgcolor="#ADD8E6" scope="row">';
              echo '<td name="id"><center>'.$registro["id"].'</center></td>';
              echo '<td name="mac"><center>'.$registro["mac"].'</center></td>';
              echo '<td><center><input type="checkbox" name="status" value="$teste"><br></center></td>';
              echo '<td id="linha_desc"><textarea name="desc" type=text placeholder="'.$registro["descricao"].'" /></textarea></td>';
              echo '<td><input name="altura" type=text style="width: 70px;" placeholder="'.$registro["altura_latao"].' cm" /></td>';
              echo '<td><input name="area" type=text style="width: 70px;" placeholder="'.$registro["area_latao"].' cm" /></td>';
              
              echo '<td><form method="get" action="salva.php"><center><button class="voltar" type="submit">Salvar</button></center></form><br />';
              echo '</tr>';
              }
          echo '</tbody></table></form>';
          
          ?></center><br />
          
              <div>            
                  <form method="get" action="index.html">        
                  <center><button class="voltar" type="submit">Voltar</button></center></form>
              </div>
                      
                      <br />
                      <footer class="borda_texto"><center>
                      <img src="img/rodape_logo.png">
                          2019 © <b>DITEC - Smart Solutions</b> - Todos os Direitos Reservados.
                      <a class="px-4" href="https://www.ditecsc.com.br" target="_blank">Ditec - Smart Solution</a>
                      </center></footer>
      </body>
      </html>
       
      salva.php
       
      <?php
      include('conexao.php');
      include_once('altera.php');
       
      // declaração de variáveis
      $id = 22;
      /*$id = $_GET['id'];
      $status = $_POST['status'];*/
      $descricao = $_POST['desc'];
      $altura = $_POST['altura'];
      $area = $_POST['area'];
       
      $up = mysqli_query($conn, "UPDATE interface SET descricao='$descricao', altura_latao='$altura', area_latao='$area' WHERE id=$id"); 
       
      if(mysqli_affected_rows($conn) > 0){
        echo '<center><h1><b>Sucesso</b></h1><br /> <h2>Atualizado!</h2></center>';
        header("Refresh: 2;url=equipamentos.php");
      }else{
          echo '<center><h1><b>Erro</b></h1><br /> <h2>Não foi atualizado!</h2></center>';
        header("Refresh: 2;url=altera.php");
      }
       
      mysqli_close($conn);
      ?>
       
      Do jeito que esta eu consigo alterar o id=22, mas não consegui pegar o id da linha sequente;
       
       
    • Por danilosilva222
      Olá pessoal, boa tarde! 
      Sou novato em programação e aqui no fórum é a minha primeira postagem, e tenho uma dúvida.
      Com Javascript, é possível desenvolver um sistema web completo para gestão, como por exemplo, academias, lojas, supermercados, etc..? 
      Desde já agradeço a atenção de vocês. 
    • Por LuanMartinsTI
      Eu gostaria de saber se existe algum problema relacionado a seguranca criando uma funcao assim, no exemplo sempre que eu crio uma funcao pre reutilizar os dados sao passados direto na chamada da funcao dentro do php, o usuario nao insere nenhum dado, quando o usuario vai inserir dados eu nao trabalho dessa forma, entao minha duvida [e, se mesmo o parametro da funcao sendo informado dentro do php no codigo pode existir algum problema.
      public function contar_cadastro($tabela, $sql){ try { if($sql == null){ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela"); $this->Select->execute(); return $this->Select->rowCount(); }else{ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela". " " ." $sql"); $this->Select->execute(); return $this->Select->rowCount(); } } catch (PDOException $exc) { exibeMensagens($Msg, $ErrNo); } } E as chamadas das funcoes assim
       
      $cmsPDO = new CmsPDO(); $r_userStaff = $cmsPDO->contar_cadastro('usuarios', ' where cargo > 2'); $r_userVip = $cmsPDO->contar_cadastro('usuarios', ' where cargo = 2'); $r_userBan = $cmsPDO->contar_cadastro('usuarios', " where ban = '1'"); $r_usuarioPDO = $cmsPDO->contar_cadastro('usuarios', null); $r_servVip = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'V'"); $r_servFree = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'F'"); $r_servInat = $cmsPDO->contar_cadastro('servidores', " where verificado = '1'"); $r_servOff = $cmsPDO->contar_cadastro('servidores', " where estado = 'Off'"); $r_servOn = $cmsPDO->contar_cadastro('servidores', " where estado = 'On'"); $r_servidores = $cmsPDO->contar_cadastro('servidores', null); Eu normalmente crio as funcoes assim:
      public function cadastrar_usuario($usuario){ try { if($this->veriricarnick($usuario) == false){ if($this->verificiarEmail($usuario) == false){ $query = 'INSERT INTO usuarios ' . '(id, nome, senha, email, cargo, ip)' . 'value(null,:nome, :senha, :email, :cargo, :ip)'; $this->Criar = $this->Conn->prepare($query); $this->Criar->bindValue(':nome' , $usuario->getNome() , PDO::PARAM_STR); $this->Criar->bindValue(':senha' , $usuario->getSenha(), PDO::PARAM_STR); $this->Criar->bindValue(':email' , $usuario->getEmail(), PDO::PARAM_STR); $this->Criar->bindValue(':cargo' , $usuario->getCargo(), PDO::PARAM_INT); $this->Criar->bindValue(':ip' , $usuario->getIp() , PDO::PARAM_STR); $this->Criar->execute(); if($this->Criar->rowCount() == 1){ return 1; }else{ return false; } }else{ return false; } }else{ return false; } } catch (PDOException $exc) { exibeMensagens("<b> Erro ao inserir.</b> Mensagem:{$exc->getMessage()} Código: {$exc->getCode()}", WS_ERROR); } }  
    • Por nosredna
      Olá amigos,
       
      tenho o seguinte código:
      <html> <script type="text/javascript"> function Soma(){ var soma = 0; var ipts = document.querySelectorAll('input[oninput="Soma()"]'); for(var x=0; x<ipts.length; x++){ var valorItem = parseFloat(ipts[x].value); !isNaN(valorItem) ? soma += parseFloat(valorItem) : null; } document.querySelector('#final').value = soma.toFixed(2); } </script> <form action=""> Total produto1: <input type="text" oninput="Soma()" value="0"><br> Total produto2: <input type="text" oninput="Soma()" value="0"><br> <br> Total todos os produtos12: <input type="text" id="final"> </form> </html> Bom...para essas duas inputs funciona corretamente.
      Porém, se eu quiser colocar mais inputs como: Total produto3 + Total produto4 = Total todos os produtos34, Total produtoX + Total produtoY = Total todos os produtosXY, ...
      e usar o mesmo código JS, é possível? alguém poderia me dar uma dica de como eu faço para fazer isso? já tentei de várias maneiras, mas não estou tendo sucesso...
       
      Fico agradecido. 
×

Informação importante

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