Ir para conteúdo
Fórum Script Brasil

Vithor

Membros
  • Total de itens

    50
  • Registro em

  • Última visita

Tudo que Vithor postou

  1. Bom, só eu me ajudei :P Mas vou deixar a solução, caso alguém queira (não está ótimo, em nível de programação, mas faz o que precisa fazer, então...) <script> function link_the_page(curr, next, opts) { if (this.alt != '') { var addr = this.alt; // pega o ALT da imagem $('#home_3').click(function(){ if(event.target.nodeName == "IMG") // se clicou na imagem e NÃO no índice (seletor de imagem - que é um A (link)) window.location = "?navega="+addr; }); $('#home_3').css("cursor", "pointer"); } else $('#home_3').css('cursor', 'default'); } $(function() { $('.anuncios').cycle({ fx: 'fade', speed: 2000, timeout: 5000, pager: '#nav', slideExpr: 'img', after: link_the_page }); }); </script> <div id="home_3"> <div class="anuncios"> <div id="nav"></div> <img src="teste.jpg" width="402" height="173" alt="contato" /> <img src="teste_2.jpg" width="402" height="173" alt="equipe" /> <img src="teste_3.jpg" width="402" height="173" alt="orcamento" /> </div> </div>
  2. Pronto, tá tudo certo... QUASE! Galera, o código tá o seguinte: <script type="text/javascript"> $(function() { $('.anuncios').cycle({ fx: 'fade', speed: 2000, timeout: 5000, pager: '#nav', slideExpr: 'img' }); }); </script> Só que tem uma coisa: cada "slide" é como se fosse um link, para uma página interna. Por exemplo, no post acima, tem uma imagem de conexões, e esse é um link. Na próxima imagem, vai ter outro link, e assim por diante. Como eu implemento isso?
  3. Olá galera! Estou desenvolvendo um site, e deixei este item por último porque sabia que iria ter problemas com ele... Tenho que criar uma galeria de imagens com 3 itens, que contenham os índices (1, 2 e 3) para o usuário clicar a qualquer momento em um deles, mas eles também devem passar dinamicamente (sem o usuário clicar). Achei um script que creio poder usar, bem interessante, aqui: Galeria com paginador Só que eu estou tendo problemas para estilizar os itens (1, 2 e 3), e tenho que deixá-los dessa forma (layout): Caso a imagem não apareça acima, o link é: http://img191.imageshack.us/i/layoutjv.jpg/ Vocês podem me ajudar?! EDIT Galera, consegui estilizar. Mas agora tá tendo um problema: os links não são criados... O link que "chamaria" a 2ª imagem (ao clicar no botão 2) não existe para nenhuma imagem... O que fazer?!
  4. Vithor

    Orçamento/Carrinho PHP

    Descobri o erro: a variável $_POST['orcamento_produtos'] na verdade é o mysql_num_rows() da query inicial, na hora da listagem dos produtos. Portanto, já está adicionando e exibindo os produtos na lista de orçamento. Resta agora fazer a parte de exclusão, que só vou fazer na segunda-feira, pois por hoje é só! Na segunda, volto aqui caso haja alguma dúvida na parte de exclusão ou em alguma outra área. Obrigado!
  5. Vithor

    Orçamento/Carrinho PHP

    Bom, vamos ver, eu achei um site que já foi feito aqui pela agência, que é muito similar... estou tentando me basear por ele. O código abaixo é o que trata o "submit" do formulário. if(isset($_POST['orcamento_produtos'])) // o isset funciona quando você passa só o nome do formulário? (orcamento_produtos não é um campo, é o nome do formulário) { echo "<script>alert('entrou');</script>"; // esse alert não é mostrado... por que?! $tamanho = $_POST['orcamento_produtos']; $size = $_SESSION['produtos_carrinho']; // nunca vi essa sessão antes oO for($i = 0; $i < $tamanho; $i++) { $qtd = $_POST['qtd_'.$i]; if($qtd != "" && is_numeric($qtd) && $qtd > 0) { $id = $_POST['id_'.$i]; $nome = $_POST['nome_'.$i]; if($_SESSION['p_'.$id]) $_SESSION['p_'.$id]['qtd'] += $qtd; else { $_SESSION['p_'.$id]['qtd'] = $qtd; $_SESSION['p_'.$id]['nome'] = $nome; $size += 1; } } } $_SESSION['produtos_carrinho'] = $size; } Depois, eu quero listar isso, daí: $size = $_SESSION['produtos_carrinho']; if($size > 0) { foreach($_SESSION as $produto => $valor) { if(substr($produto, 0, 2) == "p_") { echo "<tr><td>".$_SESSION[$produto]['qtd']." unid.</td><td>".$_SESSION[$produto]['nome']."</td></tr>"; } } } Esses códigos eu meio que peguei desse outro site que já foi feito, claro, fazendo as adaptações necessárias. Para ver a estrutura do formulário, acesse o site! ----> http://www.comercialaleixo.com.br/novo (clique em Produtos, no menu, depois escolha a 1ª categoria e em seguida, a 1ª subcategoria).
  6. Vithor

    Orçamento/Carrinho PHP

    Sim, eu sei! Mas, a questão é: eu não tenho só UM produto, entendeu? Eu tenho N produtos, um em cada linha, cada um com as 3 informações (id, nome e a quantidade, que é fornecida pelo usuário). Portanto, o meu $_POST, é na verdade um tipo de array. Como que eu percorro esse array SÓ levando em conta os campos preenchidos? Um problema também é saber se um deles foi preenchido... Digamos que eu tenha uma subcategoria com 20 produtos dentro dela. Como eu faria pra saber se qualquer um dos input's foi prenchido? Já que cada um tem um nome? Para facilitar o entendimento, vou colocar o link do site para vocês darem uma olhada: http://www.comercialaleixo.com.br/novo (o site está sendo reformulado...) Clique em produtos, e escolha a 1ª categoria, em seguida, a 1ª subcategoria (o 1º quadrado da 1ª linha da tabela)
  7. Oi galera! Bom, é o seguinte: tenho que montar um site que tem uma organização de produtos assim: Categoria => Subcategoria => Produto Daí, na página da Subcategoria, por exemplo, de Conectores hidráulicos, há diversos produtos, que são todos conectores hidráulicos, mas por exemplo: Conector hidráulico 1/8, Conector hidráulico 1/6, e assim por diante. Cada produto, além de um ID (PRIMARY KEY e AUTO_INCREMENT), possui um código (VARCHAR(6)) interno, que é usado pela empresa. Na página da Subcategoria, eu listo todos os produtos da respectiva subcategoria e um campo (input) ao lado de cada um, que deve ser preenchido pelo usuário, e é relativo a quantidade daquele produto (daquela linha) que o usuário quer adicionar no orçamento. Explicando melhor: Conectores Hidráulicos |Quantid. | Código | Produto | ============================== | INPUT | 300001 | Conector Hidráulico de 1/8 | | INPUT | 300002 | Conector Hidráulico de 1/6 | ... E assim por diante... No fim dessa tabela, há um botão "Enviar" para que o usuário adicione os produtos que ele deseja com suas respectivas quantidades a um carrinho. A minha dúvida é em relação a parte da $_SESSION e do $_POST. Primeiramente, como que eu faço para pegar somente as quantidades que foram preenchidas na hora do $_POST? Porque eu estou imaginando aquilo estruturado da seguinte maneira: <input type="text" name="qtd_0"> <input type="hidden" name="id_0" value="300001"> <input type="hidden" name="nome_0" value="Conector Hidráulico de 1/8"> Certo? Daí, como que eu faço para percorrer todos os campos, uma vez que eu não sei quantos produtos existem naquela subcategoria? (a não ser que eu faça um SELECT do banco de dados, e etc., mas eu acho que há outra maneira de fazer isso, certo?!) A outra questão é: ok, já peguei os valores do $_POST e tudo mais (supondo...). A partir disso, o próximo passo seria adicionar numa $_SESSION, cada campo em cada posição de um "vetor" de $_SESSION, correto? Por exemplo: $_SESSION["nome"][$contador] = $_POST["nome_".$contador]; $_SESSION["qtd"][$contador] = $_POST["qtd_".$contador]; $_SESSION["id"][$contador] = $_POST["id_".$contador]; Dessa maneira, teriamos algo como $_SESSION["nome"][0], $_SESSION["nome"][1], $_SESSION["nome"][2], tantos quantos fossem os produtos que o usuário adicionou, certo? Mas e a exclusão? Digamos que o usuário resolva excluir um produto dessa lista de orçamento. Como que eu faria para: 1º) Descobrir qual é a posição em que este produto se encontra? 2º) Os elementos que estiverem na frente desse, devem ser deslocados? Por exemplo: tenho $_SESSION["nome"][0], $_SESSION["nome"][1] e $_SESSION["nome"][2] armazenados (e suas respectivas qtdes. e ID's, mas enfim...). Digamos que o usuário resolva remover o item [1]. O item [2] AUTOMATICAMENTE passará a ser indexado de item [1] ou não? Porque, senão, como eu faria na hora de listar? Já que esse vetor passaria a ter só dois elementos, mas um na posição 0 e outro na posição 2?? (O FOR nunca chegaria ao 2º, dado que ele começaria do 0 e, além do 0, só percorreria mais uma posição: o 1, que foi excluído.) Tá meio confuso, mas eu estarei de olho aqui, qualquer dúvida, só perguntarem...
  8. Cara, eu acho que não tem como customizar os diálogos do Javascript. O que você pode fazer, entretanto, é fazer uma pergunta ao usuário, e tratar a resposta, usando o confirm(). Ficaria assim: if(!confirm("Você deseja continuar comprando?")) window.location = "carrinho.php"; Abraços!
  9. Oi galera! Então, eu não sei nada de Ajax :P Eu queria aprender, entretanto, porque eu preciso fazer um chat, usando PHP e Ajax. O sistema seria bem simples, nada de emoticons, sons, webcam ou coisa desse tipo. A única funcionalidade "extra" do chat seria uma fila de espera, que eu não tenho a mínima noção de COMO seria implementada (digo isso tanto no PHP como no BD, como lidar com uma fila de espera?). O que eu quero saber aqui é sobre como começar no Ajax. Eu queria um Chat, se possível, muito parecido com o do suporte da Locaweb, não sei se vocês já usaram. Não quero ter que usar META REFRESH para atualizar o texto, fazendo SELECTs usando o reload da página. O que eu queria era algo dinâmico, independente de refresh de página, por isso o Ajax (creio estar buscando a coisa certa, ou não?). E sobre a fila de espera, alguém tem alguma idéia de como implementar? Vocês acham muito complexo? Obrigado desde já!
  10. Olá Hugo Borges! Cara, é uma função simples do PHP: <?php $pagina = "Paginas/Contato.php"; $title = substr($pagina,8,-4); echo $title; ?> A função substr() recebe 3 parâmetros, como você pode verificar no link. O primeiro é a string original, o segundo é o começo de onde "cortar" e o terceiro é o tamanho. Como você passa um "início" (posição do caractere) positivo, ele pega a sua string e corta desde o começo, até o fim, exceto a extensão .php (é pra isso que serve o -4, ele pega desde o "início" até o fim, menos os ultimos N caracteres, no caso, menos os últimos 4). Entendeu? Imagine a string como um vetor, que começa na posição 0: P a g i n a s / C o n t a t o . p h p 0 1 2 3 4 5 6 7 8 (8ª posição) Ou seja, desde a letra "C" até o fim, tirando os últimos 4 caracteres (-4) Agora, eu acho que o melhor jeito de fazer isso é o seguinte: $pagina = "Paginas/Contato.php"; $title = explode("/", substr($pagina,0,strlen($pagina)-5)); $title = $title[1]; Dessa maneira, você pode fazer pra qualquer página e pra qualquer string, porque, por exemplo, se você trocar o nome da pasta de "paginas" para "site" você teria que mudar a posição de início, que passaria a ser 6 ou algo assim. Com a função explode() você recebe um vetor com X posições, que são todas as strings que existem separadas pelo delimitador, ou seja: $str = "1.2.3.4.5.6.7.8"; $str = explode(".",$str); // str terá 8 posições, de 0 a 7 (vetor em PHP começa com 0), com os valores: 1, 2, 3, 4, e assim por diante: $str[0] == 1, $str[1] == 2...
  11. Caraca, erro de HTML =P você errou a propriedade NAME das tags em dois lugares: Aqui: <form mane="teste" action="" method="post" enctype="multipart/form-data"> // <form MANE="teste" (?) substitua por: name="teste" e aqui: <input type="submit" nome="enviar" value="Enviar" /> // nOme="enviar" (?) substitua por: name="enviar" E você tem que colocar uma ACTION no formulário, pra própria página: <form name="teste" action="nome_da_sua_pagina.php" method="post" enctype="multipart/form-data">
  12. Vithor

    ajuda com esse código

    Cara, eu já usei o SQL Server 2005. Vê se funciona no 2008 também: é só você trocar os comandos "mysql_" por "mssql_". Ou seja: mssql_connect, mssql_select_db, mssql_fetch_array, etc. Vê se funciona. E falando no negócio dos vetores de $_SESSION['nome'][]... Beleza, o PHP adiciona um por um automaticamente. Mas e na hora de recuperar? Você não tem como saber QUANTOS itens tem, certo? Fazer isso aqui: $x = 0; while(isset($_SESSION['nome'][$x])) { // COMANDOS $x++; } funciona para recuperar todos os itens, certo?
  13. Cara, tem um site... http://codigofonte.uol.com.br/codigo/js-dh...igual-ao-google Prontinho. É só você fazer alguns testes e ver como funciona. Mas parece simples... Abraços!
  14. Vithor

    Ajuda com código (Resolvido)

    Tá faltando uma aspas dupla na primeira linha: $valida = "SELECT * FROM controle WHERE id_veic='$veiculo[1]' AND kmrodado=''; Troque por isto: $valida = "SELECT * FROM controle WHERE id_veic='$veiculo[1]' AND kmrodado=''"; Também tá faltando uma chave depois do segundo else: if ($total >= 1){ echo "&lt;script>alert('Você não fechou o último lançamento!');top.location.href='movimentacao.php';</script>"; }else{ // <---------- ESTE ELSE NÃO TEM CHAVE FINAL! $pesquisa = "SELECT * FROM controle WHERE id_veic='$veiculo[1]' AND os='$os'"; $result = mysql_query($pesquisa); $contagem = mysql_num_rows($result); if ($contagem == 1){ echo "&lt;script>alert('Você está tentando abrir o odometro do Veículo $veiculo[0] novamente!');top.location.href='movimentacao.php';</script>"; }else{ $sql = "INSERT INTO controle(id_veic, motorista, prefixo, data, hs, os, dpublicacao, qpublicou) VALUES ('$veiculo[1]', '$motorista', '$veiculo[0]', '$data', '$hs', '$os', '$dpublicacao', '$qpublicou')" or die (mysql_error); $resultado = mysql_query($sql) or die (mysql_error()); } } // <------ COLOQUE ESTA CHAVE NO SEU CÓDIGO, ELA FECHA O PRIMEIRO ELSE
  15. Vithor

    ajuda com esse código

    Então cara, pra você fazer isso você precisa de vetor. Por que funciona na mesma página então? Porque você vai dando ECHO conforme a query vai andando os registros, entendeu? Por exemplo, a query está com o registro de ID = 1, você vai lá e dá ECHO nas informações daquele registro. Aí o while passa pro próximo. Faz a mesma coisa, e você vai e dá ECHO. E assim por diante. Só que como você toda hora SUBSTITUI o valor na $_SESSION (ao fazer $_SESSION["..."] = $variavel dentro de um while, ela vai em todo loop receber um valor novo), a hora que você recupera o valor dela fora do while, ele vai ser o último valor da query, entendeu? porque ele percorreu tudo mas você foi substituindo os valores, até o último registro. Então você tem que usar vetor e uma variável que servirá de índice (que começaria com 0, e a cada loop você aumenta o valor dela - $var++ - entendeu?) Abraços!
  16. Vithor

    automatizar script

    Usa o Agendador de tarefas do servidor (Cron), como falaram aí em cima, só que você configura ele pra chamar uma página às 0h (meia-noite). Nessa página, você faz um loop infinito, como: while(true) { ... } e nos 3 pontinhos você verifica a cada minuto (ou a cada X minutos ou horas) se tem uma tarefa pra ser executada naquele horário. Pronto! Só vai ter o trabalho de implementar um "timer" que eu tenho certeza que já existe pronto, ainda mais pra PHP :P
  17. cara, essa coisa toda de concorrência de processos é meio complicada. Geralmente existem "semáforos" e regiões protegidas, para que não haja esse tipo de coisa. Mas pra você saber com certeza, só fazendo vários acessos simultâneos. Vá em dois PCs e faça o acesso a um script PHP que faça SELECTs e UPDATEs dentro de um processo de repetição (while, for, etc.)
  18. tenta fazer: var url:String = new String("./?area=php/pg1"); // ou: var url:String = new String("http://www.enderecodoseusite.com.br/index.php?area=php/pg1"); // assumindo que você tenha uma index e seja ela que trate a variável por GET. Se for a inicio.php substitua index.php por inicio.php e boa...
  19. Pô cara, lógica ridícula hein!? $i = 1; while($aux = mysql_fetch_object($mysql)){?> <td><? echo $aux->nome; ?></td><td><input type="text" name="qntger<?=$i?>" size="2"></td><td>8</td><td><input type="text" name="diasger<?=$i?>" size="2"></td><td><? echo $auxx->gerente; ?></td><td><input type="text" name="totalger<?=$i?>" size="3" readonly></td><td><input type="text" name="adicioger<?=$i?>" size="3" readonly></td> <?$i++;}?> isso aí vai gerar campos com os nomes: qntger1, qntger2, qntger3 e assim por diante... diasger1, diasger2, diasger3 e assim por diante... totalger1, totalger2, totalger3 e assim por diante... adicionager1, adicionager2, adicionager3 e assim por diante... Se você tiver um ID no seu banco de dados, faz ele receber o nome mais o ID concatenado, em vez de um contador linear começando com 1...
  20. Tente isso: $sql_lista = "SELECT C.id_cartela, C.id_vend_loja, C.id_cli, C.qtd_selos, C.qtd_normal, C.qtd_promocional, C.qtd_campanha, C.qtd_verde, C.total, C.banco, V.id_vend_loja FROM cartela C JOIN vend_loja V ON C.id_vend_loja = V.id_vend_loja WHERE C.data_cad >='".$data_ini."' AND C.data_cad <= '".$data_fim."' AND C.acesso = 1 ORDER BY V.nome_vendedor"; Cara, na parte onde está escrito: [...] JOIN vend_loja V ON C.id_vend_loja = V.id_vend_loja [...] você deve substituir o C.id_vend_loja e o V.id_vend_loja pelo campo que é comum às duas tabelas, ou seja, o campo que é a foreign key e liga as duas tabelas, já que ele vai fazer com que os registros sejam filtrados para todos os vendedores que estão cadastrados na tabela de vendas, ou seja, que fizeram alguma venda.
  21. Vithor

    Ajuda com código

    O david.lyonnais tá certo, pra você não perder o valor, só armazenando o valor em um Cookie ou Session. Pra fazer isso você tem que usar PHP, que é uma linguagem de programação interpretada pelo SERVIDOR onde o seu site está hospedado (que pode ser no seu próprio PC, se você tiver o Apache e o PHP como um módulo do Apache.). O que você tá fazendo aí é Javascript, uma linguagem "client-side", ou seja, ela é interpretada no "cliente", mais especificamente, no browser de quem acessa o site. Por isso que toda vez que você abrir a página, ou der refresh, ela vai estar com o contador como 0. Pensando melhor, Cookie e Session podem funcionar, mas se você quiser armazenar isso de uma forma mais segura, o ideal seria usar banco de dados. Cria uma tabela pra cliques e coloca uma coluna lá: quantidade. Daí ela começa com 0, e toda vez que você clica você dá um UPDATE via SQL para quantidade + 1 (0 + 1 = 1... 1 + 1 = 2... e assim por diante). Mas pra isso tudo você tem que saber PHP e SQL pelo menos.
  22. Certo... Isso aí já funciona, a única modificação que você teria que fazer seria adicionar um ORDER BY, pra ordenar pelo nome do vendedor. O SQL ficaria assim: SELECT V.id, Vend.nome, V.qtd, V.item FROM Vendas V JOIN Vendedores Vend ON Vend.id = V.id_vend ORDER BY Vend.nome;
  23. Opa! Então, não entendi direito: você quer um relatório dos itens mas por ordem alfabética dos nomes DOS VENDEDORES ou você quer simplesmente listar os produtos vendidos, mas aparecer neste relatório, em vez do código do vendedor, o NOME dele? O SQL abaixo seleciona o ID da venda, o nome do vendedor, a quantidade da venda e o item da venda: SELECT V.id, Vend.nome, V.qtd, V.item FROM Vendas V JOIN Vendedores Vend ON Vend.id = V.id_vend; Vê se isso aí te ajuda...
  24. Vithor

    Instrução SQL

    Você efetuou a pesquisa direto via BD? Porque se você fizer: SELECT * FROM alunos WHERE usuario LIKE ".$sqx." AND data = '".$ndata."'; no MySQL ou sei lá qual a base que você usa, e ele não retornar nada, NO BANCO, quer dizer que você realmente não tem registros cadastrados com essas informações. Uma coisa, tente mudar a cláusula LIKE para: SELECT * FROM alunos WHERE usuario LIKE '%".$sqx."%' AND data = '".$ndata."'; Pois dessa forma ele procurará na coluna "usuario" QUALQUER parte da String que contenha $sqx. Isso pode estar afetando o SELECT pois você usa o operador AND, então se um deles der falso, tudo dá falso. Colocando OR funciona? Ou com a cláusula nova que eu falei?
  25. Oi pessoal! Bom, tem um sistema aí que não fui eu quem desenvolveu e tem uma parte que ele faz uploads de imagens ou aplicativos (*.jpg ou *.exe). Mas o cliente está reclamando que, após o upload, o arquivo fica com um nome "estranho". Alguns exemplos: 0ac1506e27defd70db1acce25fd8153b.jpg 1c2751f1a1905242374fd4f2705a8db3.jpg ac979dabe4001bc66c9332d63b0aa7ad.exe 87510af49fcfab2b896c08bfa155f609.exe Acho que deu pra entender né?! Bom, o cliente hoje resolveu que ele não quer mais esses nomes no arquivo. Ele quer que o aplicativo/imagem fique com o nome original. Eu dei uma olhada no código, mas é um sistema relativamente complexo e grande, então tá meio difícil achar a parte exata. Eu venho aqui perguntar pra vocês se é possível o servidor renomear o arquivo sozinho, ou então, por exemplo, eu acho que os servidores copiam a imagem pra um "nome" temporário. Eu quero saber se é problema do servidor, porque daí eu não preciso contatar o desenvolvedor original. Mas se não for, vou ter que repassar o serviço pra ele mesmo. Vou postar a parte do código que eu acho que faz a parte de upload: <?php require_once('../class/util/Upload.class.php'); function handleUpload($uploadDirectory, $replaceOldFile = FALSE){ if (!is_writable($uploadDirectory)){ return array('error' => "Server error. Upload directory isn't writable."); } if (!$this->file){ return array('error' => 'No files were uploaded.'); } $size = $this->file->getSize(); if ($size == 0) { return array('error' => 'File is empty.'); } if ($size > $this->sizeLimit) { return array('error' => 'File is too large.'); } $pathinfo = pathinfo($this->file->getName()); //$filename = $pathinfo['filename']; $filename = md5(uniqid()); $ext = $pathinfo['extension']; if($this->allowedExtensions && !in_array(strtolower($ext), $this->allowedExtensions)){ $these = implode(', ', $this->allowedExtensions); return array('error' => 'File has an invalid extension, it should be one of '. $these . '.'); } if(!$replaceOldFile){ /// don't overwrite previous files that were uploaded while (file_exists($uploadDirectory . $filename . '.' . $ext)) { $filename .= rand(10, 99); } } $erro = $this->file->save($uploadDirectory . $filename . '.' . $ext); if ($erro == ""){ return array('success'=>$filename . '.' . $ext); } else { return array('error'=> $erro); } } } $uploader = new qqFileUploader($allowedExtensions, $sizeLimit); É um arquivo com vários métodos, mas eu postei todos, "just in case". Se alguém puder me ajudar, eu agradeço! Abraços!!! EDIT nossa pessoal, eu tava CEGO! Literalmente! Fiquei analisando o código por horas, e só vi a hora que postei no fórum ¬¬ o "erro" que tá dando é por causa dessas linhas: $filename = md5(uniqid()); //... if(!$replaceOldFile){ /// don't overwrite previous files that were uploaded while (file_exists($uploadDirectory . $filename . '.' . $ext)){ $filename .= rand(10, 99); } } Juro que eu não tinha visto isso! Nossa... ¬¬ Valeu ^^
×
×
  • Criar Novo...