Ir para conteúdo
Fórum Script Brasil

Carlos Rocha

Membros
  • Total de itens

    1.300
  • Registro em

  • Última visita

Tudo que Carlos Rocha postou

  1. Carlos Rocha

    while em session

    Consegui da forma abaixo: <?php $preco_total=0.00; for ($i=0;$i<$_SESSION["MeuCarrinho"]->QuantosItens();$i++) { $preco_total = $preco_total + $_SESSION["MeuCarrinho"]->item_preco[$i]; $codigo_produto=$_SESSION["MeuCarrinho"]->item_codigo[$i]; $quantidade_produto=$_SESSION["MeuCarrinho"]->item_quantidade[$i]; $codigo_tamnho=$_SESSION["MeuCarrinho"]->item_tamanho[$i]; $codigo_cor=$_SESSION["MeuCarrinho"]->item_cor[$i]; $codigo_estoque=$_SESSION["MeuCarrinho"]->item_codigo_estoque[$i]; $desconto_percentual=$_SESSION["MeuCarrinho"]->item_desconto[$i]; $preco_com_desconto=$_SESSION["MeuCarrinho"]->item_preco[$i]; .. Agora, preciso arranjar um forma de, a cada produto adicionado ao carrinho, na própria classe carrinho, criar uma função que somasse os valores dos produtos. Tentei da forma abaixo mas não deu certo: <?php /* Classe TCarrinho */ class TCarrinho { var $item_codigo = array(); var $item_quantidade = array(); var $item_tamanho = array(); var $item_cor = array(); var $item_codigo_estoque = array(); var $item_desconto = array(); var $item_preco = array(); var $TotalNota=0.00; ............... function ObtemTotalNota() { $TotalNota=$TotalNota+($this->$item_preco*$this->$item_quantidade); return $TotalNota; } ............. } Dá erro de servidor Também tentei assim mas não deu certo function ObtemTotalNota() { //Inicializando parametro $posicao = -1; $achou = $this->ObtemPosicao($this->item_codigo_estoque,$posicao); if ($achou){ $TotalNota=$TotalNota+($this->$item_preco*$this->$item_quantidade); return $TotalNota; } } O que será que esta errado?
  2. Carlos Rocha

    while em session

    Gostaria de saber se isso é possível. while(list( $codigo, $quantidade, $tamanho, $cor, $codigo_estoque, $desconto, $preço, $estoque ) = $_SESSION["MeuCarrinho"]) { echo $código; ... } Caso não seja, queria saber tem recurso A saida da sessão é: TCarrinho Object ( [item_codigo] => Array ( [0] => 18 [1] => 18 ) [item_quantidade] => Array ( [0] => 1 [1] => 1 ) [item_tamanho] => Array ( [0] => 2 [1] => 1 ) [item_cor] => Array ( [0] => 1 [1] => 2 ) [item_codigo_estoque] => Array ( [0] => 132 [1] => 100 ) [item_desconto] => Array ( [0] => 12 [1] => 12 ) [item_preco] => Array ( [0] => 2.0504 [1] => 2.0504 ) ) A ideia aqui é um carrinho de compras simples aonde ao invés de fazer busca no banco para saber os valores do produto, grava-los todos na sessão. Deu certo. Mas agora não estou sabendo como recuperá-los para exibir os valores no carrinho Grato a quem puder ajudar
  3. Carlos Rocha

    Ajuda com lógica

    Agora deu certo: if(isset($estoque_a_deletar_base)) { foreach ($estoque_a_deletar_base as $base_a_deletar) { $indice = 0; $deleta = false; for ($i=1; $i<=count($estoque_a_deletar_form)/2; $i++) { //print "Cor base: ".$base_a_deletar[1]." e Cor form: ".$estoque_a_deletar_form[$indice]." | Tamanho base: ".$base_a_deletar[2]." e Tamanho form: ".$estoque_a_deletar_form[$indice+1]."<br />"; if(($base_a_deletar[1]==$estoque_a_deletar_form[$indice]) and ($base_a_deletar[2] == $estoque_a_deletar_form[$indice+1])) { $deleta=true; break; } $indice = $indice+2; } //print "Delete: ".$deleta."<br><br>"; //Todos os valores estao chegando como que o valor de delete=1 e não true if (!$deleta) { $deleta_estoque_string = "delete from estoque where id_estoque=".$base_a_deletar[0]; $deleta_estoque_query = $conexao->query($deleta_estoque_string); } } }
  4. Pessoal. O código abaixo: if(isset($estoque_a_deletar_base)) { $deleta = false; foreach ($estoque_a_deletar_base as $base_a_deletar) { $indice = 0; for ($i=1; $i<=count($estoque_a_deletar_form)/2; $i++) { print "Cor base: ".$base_a_deletar[1]." e Cor form: ".$estoque_a_deletar_form[$indice]."<br />Tamanho base: ".$base_a_deletar[2]." e Tamanho form: ".$estoque_a_deletar_form[$indice+1]."<br />"; if(($base_a_deletar[1]==$estoque_a_deletar_form[$indice]) and ($base_a_deletar[2] == $estoque_a_deletar_form[$indice+1])) { $deleta=true; break; } $indice = $indice+2; } print "Delete: ".$deleta."<br><br>"; //Todos os valores estao chegando como que o valor de delete=1 e não true if ($deleta==false) { $deleta_estoque_string = "delete from estoque where id_estoque=".$base_a_deletar[0]; print $deleta_estoque_string."<br>"; } } } Esta, neste momento, produzindo a seguinte saida: Cor base: 1 e Cor form: 1 | Tamanho base: 1 e Tamanho form: 1 Delete: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 1 e Tamanho form: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 1 e Tamanho form: 5 Delete: 1 Cor base: 1 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 1 Cor base: 1 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 5 Delete: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 1 Cor base: 3 e Cor form: 1 | Tamanho base: 5 e Tamanho form: 5 Delete: 1 Acontece, que a varivel delete é boolena,e não estou conseguindo receber seu valor direito. Ou ela vem como 1 ou vem vazia. Observem a saida: Na primeira linha, não houve duas linhas pois, na primeiro volta do for, constatou-se uma igualdade entre os valores e então, conforme o codigo, era para parar. contece, que mesmo assim, não consegui recuperar a variavel delete como true. Onde estará o erro?
  5. Bom, vou tentar simplificar. Tenho essa array: Array1 ( [0] => Array ( [0] => 1 [1] => 1 [2] => 1 ) [1] => Array ( [0] => 2 [1] => 3 [2] => 1 ) [2] => Array ( [0] => 3 [1] => 1 [2] => 5 ) [3] => Array ( [0] => 4 [1] => 3 [2] => 5 ) ) E essa: Array2 ( [0] => 1 [1] => 1 [2] => 1 [3] => 5 ) Preciso saber quantas combinações há de cada indice primario do primeiro array em seus subindices 1 e 2, com cada sequencia 0,1; 2,3 do segundo array. Tipo assim: comparar o array1[1] com array2[1] e array1[2] com array2[2] Se não houver combinaçao, comparar array1[1] com array2[3] e array1[2] com array2[4] E assim conscutivamente. É isso que preciso fazer e não estou conseguindo. Porem, isso tem quew ser dinamico. Não pode ser da forma qe fiz acima pois haverá uma hora que um array terá maior quantidade e indices.
  6. Veja: tenho para cada indice do array, sub indices 0,1 e 2. Então, não sei bem com fazer nesse caso. Pensei em fazer um inidce para um novo array push tal como a cada laço do indice 1, crio o indice 1 do array id_a_deletatr[0]. a cada laço do indice 2, crio o indice 1 do array id_a_deletatr[1]. Depois, faço um for nesse array e, o indices que tiverem true eu faço a deleção. Mas não funcionou. O negocio é o seguinte: Para cada produto eu tenho varias combinações cor/tamanho. Na alteração desse produto, preciso filtrar 3 coisas: A) Os indices que vieram do formulario e que não estão na base -> Esses, tenho que gravar => Consegui A) Os indices que vieram do formulario e que estão na base -> Esses, NÃO tenho que gravar => Consegui C) Os indices que que tem no base de dados mas que NÃO estão no formulario ->, Esses, preciso deletar. => NÃO consegui
  7. Pessoal, preciso saber como faço para, ao final de um loop foreach, em que a cada volta do loop, se faça uma busca (omparação), caso nenhuma das buscas tenha retorno, aí farei um delete dasquele registro. Bom, o loop é esse: foreach($estoques_a_deletar as $deleta) { print "Cor: ".$deleta[1]." - ".$cores_produtos." Tamanho ".$deleta[2]." - ".$tamanhos_produtos."<br>"; if(!(($deleta[1]==$cores_produtos) and ($deleta[2]==$tamanhos_produtos))) { $deleta_estoque_string="delete from estoque where id_estoque=".$deleta[0]; print $deleta_estoque_string."<br>"; //$deleta_estoque_query= $conexao->query($deleta_estoque_string); } } Esse loop esta dentro de um outro loop foreach que entrega, a cada volta, um valor para $cores_produtos e $tamanhos_produtos, que devem ser comparados com $deleta[1] e $deleta[2] consecutivamente. E, se em nehum laço, houver a combinação, aí faço o delete do registro. Como fazer isso? Segue o codigo todo: $pesquisa_cor_tamanho_string = "select id_estoque, id_cor, id_tamanho from estoque where id_produto=".$_POST["id_alt_produtos"]; $pesquisa_cor_tamanho_query = $conexao->query($pesquisa_cor_tamanho_string); if ($pesquisa_cor_tamanho_query->num_rows!=0) { $estoques_a_deletar=array(); while($row = $pesquisa_cor_tamanho_query->fetch_row()) {$estoques_a_deletar[] = array_values($row); } } $estoque_a_deletar = array(); foreach ($_POST["cores_alt_produtos"] as $cores_produtos) { foreach ($_POST["tamanhos_alt_produtos"] as $tamanhos_produtos) { array_push($estoque_a_deletar,$cores_produtos); array_push($estoque_a_deletar,$tamanhos_produtos); $pesquisa_cores_tamanhos_string = "select id_cor, id_tamanho, id_estoque from estoque where id_cor=".$cores_produtos." and id_tamanho=".$tamanhos_produtos." and id_produto=".$_POST["id_alt_produtos"]; $pesquisa_cores_tamanhos_query = $conexao->query($pesquisa_cores_tamanhos_string); if ($pesquisa_cores_tamanhos_query->num_rows==0) { $insere_cor_tamanho_string= "insert into estoque (id_produto, id_cor, id_tamanho) values (".$_POST["id_alt_produtos"].",".$cores_produtos.",".$tamanhos_produtos.")"; } print $pesquisa_cores_tamanhos_string."<br>"; //$insere_cor_tamanho_query = $conexao->query($insere_cor_tamanho_string); if(isset($estoques_a_deletar)) { foreach($estoques_a_deletar as $deleta) { print "Cor: ".$deleta[1]." - ".$cores_produtos." Tamanho ".$deleta[2]." - ".$tamanhos_produtos."<br>"; if(!(($deleta[1]==$cores_produtos) and ($deleta[2]==$tamanhos_produtos))) { $deleta_estoque_string="delete from estoque where id_estoque=".$deleta[0]; print $deleta_estoque_string."<br>"; //$deleta_estoque_query= $conexao->query($deleta_estoque_string); } } } } }
  8. Consegui: foreach($verifica_existencia_estoque as $verifica_estoque) { $item=0; for($q=0;$q<count($estoques_a_deletar)/2;$q++) { if(!(($verifica_estoque[2]==$estoques_a_deletar[$item]) and ($verifica_estoque[3]==$estoques_a_deletar[$item+1]))) { $deleta_estoque_string="delete from estoque where id_estoque=".$verifica_estoque[0]; $dele_estoque_query= $conexao->query($deleta_estoque_string); } $item=$item+2; } }
  9. Tenho o seguinte array Array ( [0] => Array ( [0] => 136 [1] => 22 [2] => 1 [3] => 4 ) [1] => Array ( [0] => 140 [1] => 22 [2] => 1 [3] => 1 ) [2] => Array ( [0] => 141 [1] => 22 [2] => 3 [3] => 4 ) ) E esse: Array ( [0] => 3 [1] => 4 [2] => 3 [3] => 6 [4] => 2 [5] => 4 [6] => 2 [7] => 6 ) Preciso saber se há uma correspondencia dos indices [2] do primeiro array com o indice [0] do segundo e dos indices [3] do primeiro array com o indice [1] do segundo E depois pesquisar indices [2] do primeiro array com o indice [2] do segundo e dos indices [3] do primeiro array com o indice [3] do segundo Enfim, preciso saber se há no primeiro array um par que seja identico a cada sequencia 01; 23; 45; quanta houverem Como faço isso?
  10. Não tenho muita(OU MELHOR, NÃO TENHO NEHHUMA) espericia com JQuery. Como ficaria então em JQuery?
  11. Ok Deu certo. Aproveitando. Deixa eu fazer duas perguntas? 1) o mysqli_fetch_all, para funcionar no servidor, tem que habiltar alguma coisa? 2) Porque esse script não funciona nem no ff nem no chrome. só no ie? function valida_carrinho(form, itens) { with (form) { j=0; for (var i=0; i < (itens-1)*2; i++) { if (elements(j).value > elements(j+1).value) { alert('Observe um dos produtos do carrinho\nVocê adicionou '+elements(j).value+' \nPorem, só tem '+ elements(j+1).value); elements(j).focus(); exit; } j=j+2; } form.submit(); } }
  12. Não, não. Quero dizer que da forma que eu postei acima funcionou. O array grande tem que ser pesquisado por combinações com o array pequeno. Aproveitando. Deixa eu fazer duas perguntas? 1) o mysqli_fetch_all, para funcionar no servidor, tem que habiltar alguma coisa? 2) Porque esse script não funciona nem no ff nem no chrome. só no ie? function valida_carrinho(form, itens) { with (form) { j=0; for (var i=0; i < (itens-1)*2; i++) { if (elements(j).value > elements(j+1).value) { alert('Observe um dos produtos do carrinho\nVocê adicionou '+elements(j).value+' \nPorem, só tem '+ elements(j+1).value); elements(j).focus(); exit; } j=j+2; } form.submit(); } }
  13. Isso ai já é mais dificil para o nível de programação que estou. Mas, consegui uma função me retorna uma matri js a partir de uma matriz php; Ele retornou uma matriz js desse jeito. pares = new Array(); pares[0] = new Array(); pares[0][0] = '98'; pares[0][1] = '18'; pares[0][2] = '1'; pares[0][3] = '1'; pares[0][4] = '01_BRANCO'; pares[0][5] = '3_4'; pares[0][6] = '12'; pares[1] = new Array(); pares[1][0] = '132'; pares[1][1] = '18'; pares[1][2] = '1'; pares[1][3] = '2'; pares[1][4] = '01_BRANCO'; pares[1][5] = 'M'; pares[1][6] = '12'; pares[2] = new Array(); pares[2][0] = '99'; pares[2][1] = '18'; pares[2][2] = '1'; pares[2][3] = '6'; pares[2][4] = '01_BRANCO'; pares[2][5] = 'P'; pares[2][6] = '34'; pares[3] = new Array(); pares[3][0] = '100'; pares[3][1] = '18'; pares[3][2] = '2'; pares[3][3] = '1'; pares[3][4] = 'Preta'; pares[3][5] = '3_4'; pares[3][6] = '5'; pares[4] = new Array(); pares[4][0] = '101'; pares[4][1] = '18'; pares[4][2] = '2'; pares[4][3] = '6'; pares[4][4] = 'Preta'; pares[4][5] = 'P'; pares[4][6] = '6'; Agora, preciso arranjar uma forma de vericar se o array js par_escolhido = Array [1,1] [code] possui combinação nesse array grande Se os indices 2 e 3 do array pares, são iguais aos indices 1 e 2 do array par_escolhido. Como faria isso?
  14. Olá pessoal. Bom dia! Tenho um array php com essa estrutura: Array ( [0] => Array ( [0] => 98 [1] => 18 [2] => 1 [3] => 1 [4] => 01_BRANCO [5] => 3_4 [6] => 12 ) [1] => Array ( [0] => 132 [1] => 18 [2] => 1 [3] => 2 [4] => 01_BRANCO [5] => M [6] => 12 ) [2] => Array ( [0] => 99 [1] => 18 [2] => 1 [3] => 6 [4] => 01_BRANCO [5] => P [6] => 34 ) [3] => Array ( [0] => 100 [1] => 18 [2] => 2 [3] => 1 [4] => Preta [5] => 3_4 [6] => 5 ) [4] => Array ( [0] => 101 [1] => 18 [2] => 2 [3] => 6 [4] => Preta [5] => P [6] => 6 ) ) Tenho um array JavaScript com essa estrutura: par_escolhido = Array(cor_marcada, tamanho_marcado); Onde cor_marcada e tamanho_marcado são números. No caso, valores vindos de radio buttons selecionados. Preciso buscar nessa variável php, uma combinação do índice 2 com o índice 1 do arra JavaScript do índice 3 com o índice 2 do arra JavaScript Fazer essa verificação em todos os índices primários do array php. Só que preciso fazer essa verificação em JavaScript para saber se exite uma combinação válida de cor e tamanho para o produto que o cliente escolheu. Como eu faria isso? Obrigado a quem puder ajudar! Carlos Rocha
  15. Pessoal. Bom dia! Dei um print_r num array print_r($cores_array); E me retornou em tela assim: Array ( [0] => 1 [1] => 01_BRANCO [2] => 1 [3] => 01_BRANCO [4] => 1 [5] => 01_BRANCO [6] => 2 [7] => Preta [8] => 2 [9] => Preta ) Porem, preciso retirar os valores duplicados e use a função array_unique para eliminar as repetições $cores_unique = array_unique($cores_array); print_r($cores_unique); Deu um print_r no resultado e resultou assim Array ( [0] => 1 [1] => 01_BRANCO [6] => 2 [7] => Preta ) Acontece, que ele pegou os números dos índices também 0,1..6,7......... E eu gostaria que, alem de retirar os índices repetidos, ele tamabem arranjasse os índices tipo 0,1,2,3.... Assim: Array ( [0] => 1 [1] => 01_BRANCO [2] => 2 [3] => Preta ............. ) Há uma função que faça isso?
  16. É o seguinte: Na minha função, eu tenho o value do primeiro campo criado assim: alert(document.getElementsByName('cor[]').item(0).value); Só que eu preciso saber, qual o value do campo(radio button) que foi selecionado e não do campo 0. Como fazer?
  17. Outro problema: Esse codigo funciona perfeitamente no ie. Mas no chrome e no firefox, o botão de submeter o form nem é acionado ao ser clikado. Mas, o mais estranho é que o firebug não mostra que tem erro. alguém tem alguma ideia de como contornar esse problema?
  18. Uma opinião: function valida_carrinho(form, itens) { with (form) { j=0; for (var i=0; i < (itens-1)*2; i++) { if (elements(j).value > elements(j+1).value) { alert('Observe um dos produtos do carrinho\nVocê adicionou '+elements(j).value+' \nPorem, só tem '+ elements(j+1).value); elements(j).focus(); exit; } j=j+2; } form.submit(); } } O parâmetro itens, entregará a quantidade de produtos adicionados ao carrinho. Como para cada produto adicionado ao carrinho eu tenho um campo text e um hidden, então, fiz itens-1(o input button) e multiplicado por 2(que é o niumero de campos text e hidden que terpa o formulario. Será que essa lógica ta certa?
  19. fiote. Na boa. Você viu mais alguém me ajudando nesse tópico? Pois é. Obrigado pelo apoio até aqui. De coraçao. Não deu, mas valeu o apoio.
  20. Mas ai o que eu faço pois o o button tambem é input? multipliquei por 2( um text e um hidden) funcionou mas quando tiver n produtos. Será que não vai dar pau? E mesmo assim ta parando em qualquer valor colocado. menor ou maior que o estoque To achando que o certo é contar quantos input type text tem. Como faz essa contagem? Tentei: alert(length(elements.type="text")); mas deu erro
  21. Me desculpa por não ter falado disso. é ATUALIZAR Ai é atualizado o carrinho. Observe no action do form la em cima Esse finalizar, é quando esta tudo certo e vou jogar os dados do carrinho pro banco
  22. Compra ou atualiza? Na duvida, vai o form todo: <form method="post" action="altera_carrinho.php?op=atualizar" id="form_carrinho" name="form_carrinho"> <table BORDER=0 WIDTH="95%" align="center"> <tr BGCOLOR="#0080C0"><td align="center" colspan="9">Pedido: 37</td></tr> <tr BGCOLOR="#004080"> <td align="center" width="30%">Produto</td> <td align="center" width="10%">Estoque</td> <td align="center" width="15%">PRE&Ccedil;O UNIT&Aacute;RIO</td> <td align="center" width="15%">Quant.</td> <td align="center" width="15%">TOTAL</td> <td align="center" width="15%">EXCLUIR</td> </tr> <tr> <td align='left'><font size=-1>Doce de Menta</font></td> <td align='center'><font size=-1>20</font></td> <td align='center'>R$ 3.24 </td> <td align='center'> <input style="text-align:right" type="text" id="8" name="8" size="2" value="20" onkeypress="BloqueiaLetras();" /> <input type="hidden" id="hd8" name="hd8" value="20" /> </td> <td align='center'>R$ 64.80</td> <td align='center'><b><a href="carrinho.php?op=excluir&id_prod=8">Excluir</a></b></td> </tr> <tr> <td align='left'><font size=-1>Pós de Mico Boa Sorte</font></td> <td align='center'><font size=-1>35</font></td> <td align='center'>R$ 2.33 </td> <td align='center'> <input style="text-align:right" type="text" id="7" name="7" size="2" value="45" onkeypress="BloqueiaLetras();" /> <input type="hidden" id="hd7" name="hd7" value="35" /> </td> <td align='center'>R$ 104.85</td> <td align='center'><b><a href="carrinho.php?op=excluir&id_prod=7">Excluir</a></b></td> </tr> <tr> <td align="center" colspan="7"> <input type="button" onclick="return valida_carrinho(this.form, 2)" value="Atualizar" name="Atualizar" WIDTH="78" HEIGHT="20" /><br> </td> </tr> </table> </form>
  23. Aqui Tentei no ie e no firefox. Nos dois ele deixou submeter o form mesmo com valor acima do estoque Em baixo, um print screem da tela. No caso, dois produtos ficticios. A ideia é que para cada produto do carrinho eu crio um outro hiden com o memo name e id mas com 'hd' na frente. Preciso comparar se o value hd do produto é maior que o digitado no campo quantidade.
  24. Desse jeito ele não retorna erro nem prossegue. Não adianta submeter o formulario Deu pra entender?
×
×
  • Criar Novo...