Ir ao conteúdo
  • Cadastre-se

joseph_dev

Membro Pleno
  • Posts

    108
  • Cadastrado em

  • Última visita

Tudo que joseph_dev postou

  1. Acho melhor fazer essa validação no cliente com javascript antes de mandar para o servidor. Esse campo pode receber virgula e ponto e você usa replace para deixar sempre com ponto. Validaria também o tamanho da string que deve ter 4 caracteres (3 números e uma virgula X,XX). Em caso de divergência, já informa o erro ao usuário antes de enviar ao servidor. Isso você faz em 2 minutos...
  2. Não seria apenas isso? $customerProperties = array( 'propertyCode' => $row["unique_id"], 'propertyReference' => $row["referencia"], 'propertyOperation' => array( 'operationType' => $negocio, 'operationPrice' => $valor, ) );
  3. Fala, @leo18vn ! Você deve fazer referencia às chaves das tabelas do join que você está associando... nesse caso, produtos e clientes... você associou à chaves da própria tabela de compras... Você fez assim: SELECT clientes.nome, produtos.produtos, compras.data_compra FROM compras INNER JOIN produtos ON compras.id_compra = produtos.id_produto INNER JOIN clientes ON compras.id_compra = clientes.id_cliente WHERE id_compra = '1'; Deveria ser assim: SELECT clientes.nome, produtos.produtos, compras.data_compra FROM compras INNER JOIN produtos ON compras.id_produto = produtos.id_produto INNER JOIN clientes ON compras.id_cliente = clientes.id_cliente WHERE id_compra = '1'; Veja as chaves dos joins... Percebeu as chaves que foram associadas? Veja se era isso... adicionado 7 minutos depois Por isso que só trazia o ID 1 de cada tabela... porque na tabela compras só tem o ID 1 e você disse nos JOINs que quer os produtos com ID igual a 1 e clientes com ID igual a 1. Que é o valor do ID da compra.
  4. @DiF Você tem razão! Esqueci do session_destroy()! Foi porque pensei apenas no exemplo de login do colega. Pensei apenas na sessão do login. Foi bom você tocar no assunto do injection. É muito importante! Ainda mais se tratando de login. Sobre o array e objeto é questão de gosto mesmo.
  5. @Felipe Paz Acho que entendi... Será que se você considerar sempre o caminho completo do arquivo apontando para o root em todos os arquivos não resolveria? Independente se o arquivo estiver na mesma pasta ou não... você colocaria sempre o caminho completo do arquivo com apenas uma barra no início para ele fazer referência a pasta raiz e mapear o caminho... Ex: /pages/inicio/imagem.png Pelo que entendi, em algumas arquivos você pode fazer include de outros arquivos que poderão ser acessados por subpastas e subpastas.... Então o caminho vai mudar a depender de onde o arquivo que faz o include está.
  6. Opa! Acho que o colega Charlie Fox tem razão. Alguns sites até usam o caminho http do arquivo mesmo que é o absoluto. Como você também pode usar o endereço do jquery sem precisar baixar ele. Tente o uso da / (barra) antes do caminho para chegar a raiz do seu projeto ou sem a barra para partir da pasta atual onde sua página está. Ainda tem também o ../ (ponto, ponto e barra) para voltar um nível a partir do nível atual. Ex: Caminho de uma imagem... /imagens/flor.png >> vai voltar para raiz e entrar nas respectivas pastas ../imagens/flor.png >> vai voltar um nível a partir do nível atual ../../imagens/flor.png >> vai voltar dois níveis a partir do nível atual flor.png >> vai acessar o arquivo no mesmo nível atual
  7. Cara, fiz rápido aqui... testa ai pra ver se você entende. Estou adicionando apenas o select de produtos de forma dinâmica com o name diferente. A partir dai você desenrola. Substitua seu javascript por esse: var copias = 1; function addInput(divName) { var novo = '<select name="product'+copias+'">'; novo += document.getElementById('product').innerHTML; novo +='</select>'; document.getElementById(divName).innerHTML += novo; copias++; }
  8. Opa! Cara, eu acredito que o conflito seja por causa do atributo name de cada elemento que você está clonando. Todos tem o mesmo valor no atributo name, e isso causa conflito no html. Eu acredito que seja isso. Você vai ter que gerar os elementos de outra forma dinâmica, pode ser adicionando um contador junto ao nome a cada elemento criado só para diferenciar cada um. Os items do select você pode adicionar dinamicamente também.
  9. Opa! Como o colega falou ai... Cria uma session para o usuário caso o login e senha dele seja autenticado. Ex: No seu arquivo de login: //...se usuário autenticado... session_start(); $_SESSION["login"] = 'S'; No arquivo de sua página que é redirecionada após o login autenticado: if(isset($_SESSION['login'])){ //permance nesta página }else{ //direciona para tela de login com alert()... } No arquivo de logoff: unset($_SESSION['login']); Você pode guardar qualquer valor que seja útil na variável de sessão.
  10. Opa! Você tem o itunes instalado no pc? Acho que tem que ter ele instalado... adicionado 3 minutos depois Achei isso aqui... 1 - Baixe e instale o iTunes no seu computador. 2 - Conecte o celular e o computador. Inicie o programa iTunes no seu computador. ... 3 - Procure "Acesso Pessoal" Pressione Ajustes. ... 4 - Ative o compartilhamento de Internet. Pressione o indicador ao lado de "Acesso Pessoal" até que o visor mostre que a função está ativada.
  11. Mudei uma coisa para ficar mais especifico ao elemento que você estiver trabalhando e não interferir em outros caso existam mais elementos que sejam collapse na pagina. Defina o selector com o id da div onde está os elementos (usei como exemplo "meuPainel"): $(document).ready(function() { $("[id='meuPainel'] ul li a").click(function(ev) { $(".collapse").collapse('hide'); }); }); E não esqueça de colocar o id nessa div: <div id="meuPainel" class="mix"> ... Desse jeito fica mais especifico para o painel que você estiver clicando.
  12. Opa! Tenta isso: $(document).ready(function() { $("ul li a").click(function(ev) { $(".collapse").collapse('hide'); }); }); Isso vai esconder todo elemento collapse da pagina ao clicar.
  13. @DiF Isso mesmo... coloquei os valores fixos para ele entender mas deixei comentado pra ele fazer os calculos baseados nos campos e concatenar um por um... Ele disse no inicio que nao queria php, apenas html e js. A unica forma seria por esse caminho... Se fosse com php, desse jeito que você falou seria melhor e mais organizado eu acho... E ai @Felipe Paz entendeu?
  14. Fiz algo rápido apenas como ideia. Acho que dá pra fazer mais ou menos assim... Sua tabela ficaria assim com o tbody vazio de início: <table id="tabela"> <thead> <tr> <td>Ano</td> <td>Crédito Inicial</td> <td>Janeiro</td> <td>Fevereiro</td> <td>Março</td> <td>Abril</td> <td>Maio</td> <td>Junho</td> <td>Julho</td> <td>Agosto</td> <td>Setembro</td> <td>Outubro</td> <td>Novembro</td> <td>Dezembro</td> <td>Saldo Devedor</td> <td style="border-right: none;">Crédito Atualizado</td> </tr> </thead> <tbody> </tbody> </table> O evento do botão seria nessa ideia aqui: Coloca um toggle() na tabela quando for mostrar os valores só pra ficar um pouco elegante... $('#calcular').click(function(){ //faz todo calculo e concatena dessa forma... var html = "<tr>"+ "<td>1</td>"+ "<td>100.000,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>1.200,00</td>"+ "<td>85.600,00</td"+ "<td>85.600,00</td>"+ "</tr>"; $('#tabela > tbody').append(html); )}; Os cálculos você faz aí com base nos campos... Foi isso que entendi... era isso mesmo?
  15. Opa! Posta ai o código que você já tem do formulario com os campos e boao que já adianta um pouco pra gente tentar ver algo...
  16. @leandro alfredo Dei uma melhorada ai para se adequar a sua necessidade. Testa ai nos principais navegadores... É bom você dar uma olhada em jquery como @DiF falou, que tem muita coisa massa. De inicio JS puro é melhor de entender mas depois comece a usar o jquery. <body> <input type="text" onkeydown="SomenteNumero(event)" onblur="mascara(this)"> </body> <script> function SomenteNumero(e){ var tecla = e.keyCode; //habilitado números, virgula, backspace,tab e enter if(!((tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) || tecla == 110 || tecla == 188 || tecla == 8 || tecla == 13 || tecla == 9)){ e.preventDefault(); } } function mascara(btn){ var valor = btn.value.replace(',','.'); if(valor){ var novoValor = parseFloat(valor).toFixed(2); btn.value = novoValor; } } </script>
  17. Opa! Tenta ai: <html> <head> </head> <body> <input type="text" onblur="mascara(this)"> </body> <script> function mascara(btn){ var valor = btn.value.replace(',','.'); //o parseFloat só considera decimal com ponto e nao com virgula var novoValor = parseFloat(valor).toFixed(2); btn.value = novoValor; } </script> </html>
  18. Opa! Fiz uma pequena alteração na div panel-body... Substitui os elementos <h> por <span> e atribui um css para aumentar o tamanho... Ficou legal aqui... <div class="panel-body"> <div> <span style="font-size:24px">Título 1 </span> <button class="btn btn-default btn-sm btn-mostrar">Detalhes</button> <div class="conteudo"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa dolorem harum magni optio, natus non nobis quisquam hic neque rem distinctio eos pariatur provident, tenetur dolorum aperiam suscipit aspernatur repellat.Magni et eos cupiditate quis quidem, neque.</p> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa dolorem harum magni optio, natus non nobis quisquam hic neque rem distinctio eos pariatur provident, tenetur quis veniam deleniti, architecto vel maxime laborum, aliquam necessitatibus. Eos perspiciatis, necessitatibus quisquam neque recusandae eius quo culpa a asperiores!</p> </div> </div> <div> <span style="font-size:24px">Título 2</span> <button class="btn btn-default btn-sm btn-mostrar">Detalhes</button> <div class="conteudo"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa dolorem harum magni optio, natus non nobis quisquam hic neque rem distinctio eos pariatur provident, tenetur dolorum aperiam suscipit aspernatur repellat.Magni et eos cupiditate quis quidem, neque.</p> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa dolorem harum magni optio, natus non nobis quisquam hic neque rem distinctio eos pariatur provident, tenetur quis veniam deleniti, architecto vel maxime laborum, aliquam necessitatibus. Eos perspiciatis, necessitatibus quisquam neque recusandae eius quo culpa a asperiores!</p> </div> </div> </div>
  19. Pelo que entendi só tem apenas uma tabela e você quer fazer sua consulta que contenha os 3 filtros... select * from tabela where Nome like '%" + txtnomeconsulta.Text + "%' and Proc like '%" + txtprocconsulta.Text + "%' and Dia = dateConsulta.Text
  20. Eu acho que você precisa instalar um conector/driver do banco no seu pc... E o próprio DB, é claro.
  21. não seria melhor colocar: select d504dtainivig, d504codprd, d504prcata from d504preco group by d504codprd order by d504codprd asc, d504dtainivig desc
  22. Você deve passar os parâmetros solicitados pela procedure, os que foram declarados no create. call sp_inserir_pedido(codigo, data_pedido, prazo_entrega, codigo_cliente, codigo_vendedor); Porém com os valores. Ex: call sp_inserir_pedido(10, '2017-01-01', '2017-01-01', 1020, 123)
  23. Opa! Qual o erro que dá? Posta aí... Outra coisa... o campo key logo depois do email é varchar e você está passando como inteiro no insert. Coloca a aspas nele pra ver...
  24. Opa! Você até pode, porém os ips de nossos dispositivos que acessamos a internet sempre mudam e você terá que ficar mudando no seu aplicativo. A solução seria comprar um ip fixo (que é bem carinho) ou procurar algum outro serviço do tipo. E lembrando que vai ter que configurar o firewall do seu roter para permitir o acesso externo para sua rede local, nada de mais...

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!