Carlos Rocha
-
Total de itens
1.300 -
Registro em
-
Última visita
Posts postados por Carlos Rocha
-
-
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
-
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); } } }
-
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?
-
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.
-
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
-
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); } } } } }
-
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; } }
-
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?
-
Não tenho muita(OU MELHOR, NÃO TENHO NEHHUMA) espericia com JQuery.
Como ficaria então em JQuery?
-
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(); } }
-
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(); } }
-
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?
-
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
-
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 assimArray ( [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?
-
É 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?
-
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?
-
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?
-
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.
-
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
-
Mudei.
O form é enviado sem nada acontecer.
-
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
-
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ÇO UNITÁ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>
-
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.
-
Desse jeito ele não retorna erro nem prossegue.
Não adianta submeter o formulario
Deu pra entender?
while em session
em PHP
Postado · Editado por Carlos Rocha
Consegui da forma abaixo:
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: Dá erro de servidor Também tentei assim mas não deu certoO que será que esta errado?