Ir para conteúdo

Arquivado

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

Michel Coleoni

Uma página para vários produtos diferentes

Recommended Posts

Boa tarde galera! 

Sou iniciante na programação web e preciso de ajuda, o projeto que estou programando tem vários produtos e eu gostaria de saber se devo criar uma página html para cada um(o que eu acho que não seja viável) ou se eu crio uma única página mas dependendo do produto as fotos e os textos mudam, caso seja a segunda opção gostaria de saber como faço isso. Obg!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse tópico deveria está em PHP. Logo também porque colocou a marcação de tag PHP.

 

14 horas atrás, Michel Coleoni disse:

gostaria de saber se devo criar uma página html para cada um(o que eu acho que não seja viável)

 

Isso depende.

Depende da arquitetura do projeto, pois você pode sim ter 1 única pagina e essa única página compõe todos os produtos, estou falando de usar banco de dados.

Exemplo tenho o arquivo exemplo.php e esse arquivo faz a consulta em um banco de dados com e dependendo da entrada da url ele trás o resultado daquele produto em questão.

 

Ou se for uma organização de sub páginas podemos ter um arquivo que seria o exemplo.php que faz a consulta do tipo de produto, e também quais produtos pertence aquele tipo.

Exemplo: na url digamos que entre carros/modelo-compacto.

o exemplo.php irá fazer a leitura se existe o produto carros e se existe algum modelo-compacto. E assim sucessivamente.

Então digamos que na url seja informado somente "carros", logo o exemplo.php irá listar todos os tipos de produtos vinculados a carros, ou faz outra coisa que depende do comportamento de deseja fazer na aplicação.

 

Sendo mais específico vou usar como exemplo esse fórum precisamente esse seu tópico. temos o endereço url dele, então temos a entrada topic que indica para o php que ele deve ler algo em uma ou mais tabelas, logo então temos outra barra separando qual o resultado que é para mostrar.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi amigo, porém o site não é um e-commerce, está mais para um portfólio dos produtos e não são muitos, esse é o layout da página:

image.thumb.png.0e4917d6460637151b06b148778e43f5.png

 

então não sei se faria muito sentido usar banco de dados, a não ser que eu criasse um painel de controle onde o cliente pode adicionar produtos quando necessário. Mesmo assim eu ainda gostaria de saber como faço isso. Seria interessante se ficasse desse modo: dominio.com/produto/acrílico, por exemplo.

 

Obrigado pela resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Começamos pela URL

Para esse modelo de url, na lógica temos o endereço/pasta/pasta.

Mas podemos nos usufruir em entradas da super global GET exemplo:

endereço/?alguma_coisa=algum_valor&outra_coisa=outro_valor e assim por diante.

Para a conversão em endereço/algum_valor/outro_valor temos que utilizar o módulo Rewrite do apache.

Não vou entrar em muitos detalhes sobre isso, mas pesquise a respeito htaccess e url amigáveis. Desde já lhe deixo um exemplo bem simples de como funciona: https://github.com/Spell-Master/Get-UrlAmigavel

 

Esquecemos para a explicação o uso de url's amigáveis...

Digamos então que eu tenha meu site de https://endereco_qualquer

Mas eu coloquei um link assim: <a href="https://endereco_qualquer/?sala=sofa">

Então na mais é que na minha aplicação eu consultar esse entrada

<?php
if (isset($_GET['sala']) && $_GET['sala'] == 'sofa') {
   // Aqui tomo uma ação seja mostrar um conteúdo, seja incluir um arquivo baseado no valor "sofa" que veio por GET "sala"
}

No exemplo de uso em url's amigáveis que indiquei o link logo acima.

Eu abro arquivos diferentes baseados em informações desse jeito. E se não me fala a memória me parece que coloquei um função que automatiza a inclusão de arquivos.

 

Desculpe mas não sei explicar corretamente. Pois a única forma que tenho de explicar foi essa:

Citar

Se minha aplicação recebe uma informação faça algo, se a informação for outra faça outra coisa, se não houver informação então faça qualquer outra coisa. etc.. etc... etc...

Ou seja leia dados, mostre ou inclua arquivos, depende do que for fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Quando programava em DOS. utilizava algumas teclas de atalho para: SALVAR / EDITAR / EXCLUIR / IMPRIMIR.
      Por exemplo:
      Salvar ----> ALT+S
      Editar ----> ALT+E
      Excluir --> ALT+X
      Imprimir -> ALT+I

      no PHP tem como colocar esses ATALHOS nos button, para o usuário trabalhar com esses atalhos e como seria ?

      grato,
       
      Cesar
    • Por violin101
      Caros Amigos, saudações.
       
      Por favor, me perdoa em postar uma dúvida.
       
      Preciso criar uma Rotina onde o usuário possa buscar na Base de Dados de Produtos, tanto por Código e Descrição, ou seja:
      - caso o usuário digita o Código, mostra os dados do Produto.
      - caso o usuário digita a Descrição, mostra os dados do Produto
       
      Fiz uma Rotina, onde o usuário digita a DESCRIÇÃO com a função AUTOCOMPLETE.    <=== está funcionando certinho.
       
      Minha dúvida é como faço para DIGITAR o Código e mostrar os dados também.
       
      o meu AutoComplete na MODEL está assim.
      public function autoCompleteProduto($q){ $this->db->select('*' ) ->from('produtos') ->where('produtos.statusProd',1) ->like('descricao', $q) ->limit(5) ->order_by('descricao', 'ASC'); $query = $this->db->get(); if ($query->num_rows() > 0) { foreach ($query->result_array() as $row) { $row_set[] = ['label' => str_pad($row['idProdutos'], '5', '0', STR_PAD_LEFT).' - '.$row['descricao'], 'id' => $row['idProdutos'], 'descricao' => $row['descricao'], 'cod_interno' => $row['cod_interno'], 'prd_unid' => $row['prd_unid'], 'estoque_atual' => $row['estoque_atual'] ]; } echo json_encode($row_set); } }  
       
      no CONTROLLER está assim:
      public function autoCompleteProduto() { $this->load->model('estoque/lancamentos_model'); if (isset($_GET['term'])) { $q = strtolower($_GET['term']); $this->lancamentos_model->autoCompleteProduto($q); } }  
       
      na VIEW está assim:
      <div class="col-md-10"> <label for="idProdutos">Produto:</label> <input type="hidden" name="idProdutos" id="idProdutos"> <input type="text" class="form-control" id="descricao" name="descricao" style="font-size:15px; font-weight:bold;" placeholder="Pesquisar por descrição do produto" disabled> </div>  
      VIEW + JAVASCRIPT
       
      //Função para trazer os Dados pelo o AutoComplete. function resolveAutocomplete() { $("#descricao").autocomplete({ source: "<?php echo base_url(); ?>estoque/lancamentos/autoCompleteProduto/", minLength: 2, select: function (event, ui) { $("#idProdutos").val(ui.item.id); $("#cod_interno").val(ui.item.cod_interno); $("#descricao").val(ui.item.descricao); $("#prd_unid").val(ui.item.prd_unid); $("#estoque_atual").val(ui.item.estoque_atual); $("#qtde").focus(); } }); } // inicia o autocomplete resolveAutocomplete();  
      Grato,
       
      Cesar
    • Por belann
      Olá!
       
      Estou tentando criar um projeto laravel e está dando o seguinte erro 
      curl error 60 while downloading https://getcomposer.org/versions: SSL certificate problem: unable to get local issu
        er certificate
      Já tentei atualizar o composer, mas dá o mesmo erro acima.
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma dúvida de validação de INPUT com função moeda.
       
      Tenho um input onde o usuário digita um valor qualquer, por exemplo: 1.234,56
      o problema é quando precisa atualizar o valor.
       
      Quando o usuário atualizar o input fica assim: 1.234,
       
      como faço para atualizar as casas decimais, conforme o valor for sendo alterado ?
       
      o input está assim:
       
      <div class="col-md-2"> <label for="">Valor Unitário</label> <input type="text" class="form-control" id="estoqprod" name="estoqprod" style="font-size:15px; font-weight:bold; width:100%; text-align:center;" placeholder="0,00" OnKeyUp="calcProd();" onkeypress="return(FormataMoeda(this,'.',',',event))" > </div>  
      a função para formatar o input para moeda está assim:
      obs.: a Função CalcProd está executando corretamente
      function calcProd(){ //Obter valor digitado do produto var estoq_prod = document.getElementById("estoqprod").value; //Remover ponto e trocar a virgula por ponto while (estoq_prod.indexOf(".") >= 0) { estoq_prod = estoq_prod.replace(".", ""); } estoq_prod = estoq_prod.replace(",","."); //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(",","."); //Calcula o Valor do Desconto if (prod_qtde > 0 && estoq_prod > 0) { calc_total_produto = parseFloat(prod_qtde) - parseFloat(estoq_prod); var numero = calc_total_produto.toFixed(2).split('.'); //Calculo para não deixar GRAVAR valores negativos if (calc_total_produto < 0 ) { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.') * -1; document.getElementById("qtdeTotal").value = numero.join(','); } else { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("qtdeTotal").value = numero.join(','); } } else { if (estoq_prod > 0) { document.getElementById("qtdeTotal").value = document.getElementById("estoqprod").value; } else { document.getElementById("qtdeTotal").value = "0,00"; } } } /*---Função para Formatar Campo para Moeda [R$]---*/ function FormataMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){ var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; key = String.fromCharCode(whichCode); // Valor para o código da Chave if (strCheck.indexOf(key) == -1) return false; // Chave inválida len = objTextBox.value.length; for(i = 0; i < len; i++) if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i); aux += key; len = aux.length; if (len == 0) objTextBox.value = ''; if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux; if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += SeparadorMilesimo; j = 0; } aux2 += aux.charAt(i); j++; } objTextBox.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) objTextBox.value += aux2.charAt(i); objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len); } return false; }  
      Grato,
       
      Cesar
×

Informação importante

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