Ir para conteúdo

Arquivado

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

Brayan Rastelli

[Resolvido] Simular compra

Recommended Posts

fiz isso com jquery.. apesar de nao saber muito :s

 

o index.php da pra ver já q é enviado por js.

ele faz requisiçao do functions.php passando o valor do cod do produto..

 

Mostre como você fez esse jQuery.

<script type="text/javascript"> 
 
       	$.ajaxSetup ({
		cache: false
	});
	var ajax_load = "<img src='img/load.gif' alt='loading...' />";
	
          $('.select').change(function(){
              $('.select').each(function(index){
                  //alert('Select ' + index + ': ' + $(this).val());
                  $("#result").html(ajax_load).load('function.php?cod=' + $('.select').val() );
              });
          });
 
    </script>
o problema é que você não está pegando o valor do combo atual..

$('.select').change(function(){
              var valor = $(this).val();
                  alert( valor );
          });
Eu ia preferir usar o método: $.ajax e então, antes de colocar o resultado na DIV, pega oque já tem, e soma.

O seu erro de não funcionar nos outros, foi isso aqui: ('function.php?cod=' + $('.select').val() ); deveria usar o $(this).val(), pois assim você manda o valor do primeiro item do array de elementos sempre.

 

PS: Não, não pode dar up ^_^

http://forum.imasters.com.br/index.php?app=core&module=help

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah desculpa pelo up :x

 

resolvi o problema.. hehe era isso msm..

 

só um problema agora.. ta somando normal.. mas quando eu escolho um e quero trocar depois.. ele soma o valor do q tava com o outro q foi trocado.. tinha q tirar esse valor antes

 

da pra fazer isso no js ou tem q ser no php?

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais fácil fazer com JS.. pois se você tentar fazer no server-side vai precisar de algum controlador para saber que o function já foi chamado.. talvez SESSION... não sei se ficaria legal dessa forma...

 

faça com JS mesmo. Mas considere a minha dica de trocar por $.ajax, é mais fácil de trabalhar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm..

 

tem algum material pra eu consultar bom? (sobre $.ajax)

 

to improvisando no js.. nem sei usar muito.. axo q deu pra ver heheh

 

e da forma q to fazendo eu tva usando $_SESSION sim.. =T

 

mas qual a logica pra eu retirar um produto do total qdo eu trocá-lo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

jQuery possui uma documentação boa..

http://docs.jquery.com/Ajax

http://api.jquery.com/jQuery.ajax/

 

hum.. vai ter que subtrair mesmo, mas para isso você vai precisar lembrar qndo custava..

uma forma simples que pensei agora, seria em vez de já colocar direto na DIV, também colocar os valores de cada <select> num input type="hidden", assim você tem os teus 'controladores' tb no client-side.. e então bastará manipular esses valores.. testando sempre no onchange, se já existe algum valor no hidden correspondente.. se existir você subtrai a DIV do hidden, para depois somar oque vier do function.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm.. colocar input hidden em todos os selects? ou só nos q eu selecionar?

 

e outra.. como vou subtrair um valor de uma div? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

 

ah.. uma coisa q axei tenso usar session.. é q qndo do um refresh e os produtos voltam pro 'Selecione', a session continua la..

 

entao axo melhor usar js mesmo =T

Compartilhar este post


Link para o post
Compartilhar em outros sites

um hidden para cada select..

 

uê ? pega o valor que tá lá, e subtrai.. ou usa outro hidden.. se tiver com dificuldades de pegar o valor da DIV.. mas é a mesma coisa que colocar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu dei uma olhada no manual do jQuery.. ae vi os seletores e tal.. mas num consegui fazer atualizar o valor dos input hidden

 

olha o cod q eu fiz.. provavelmente ta errado.. hahah

 

          $('.select').change(function(){ //quando mudar o select
              var valor = $(this).val();
              $("input:hidden").each(function(index){ //percorre todos os input ?
                  if($(this).val() == valor) // se em um input tiver o valor q ta no select
                      $("#result") - valor;  // subtrai o valor da div
                  else
                      $("input:hidden").val(valor); // troca o valor do input pelo do select                        

              });
               $("#result").html(ajax_load).load('function.php?cod=' + valor ); // busca o preço e atualiza o total              
          });

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara dei um jeito aqui ja.. fiz no php.. só pra duvidas posteriores.. vo por o cód. :

 

<?php
    session_start();
    
    if(!empty ($_GET['cod'])){        
            

            $comando = new DBMySQLi();
 
            $cod = $_GET['cod'];
      
            $_SESSION['total'] += $dados->CUSTO;
            $query = $comando->Executar("SELECT GRUPO, CUSTO FROM produtos WHERE CODPROD = $cod");
            while ($dados = $query->fetch_object()){
                $_SESSION['valores'][$dados->GRUPO] = $dados->CUSTO;
            }
            $total = 0;
            foreach($_SESSION['valores'] as $cat=>$preco)
                $total += $preco;
            echo "R$ ".number_format($total,2,",",".");
    }
    else

        exit('Erro');
?>

ficou um unico probleminha.. mas vo postar outro topico la em php

 

valeu aee william http://forum.imasters.com.br/public/style_emoticons/default/joia.gif [RESOLVIDO]

Compartilhar este post


Link para o post
Compartilhar em outros sites

um mesmo codigo pode levar a mais de um produto ? ou ele é chave primaria da tabela?

 

se for, o while é desnecessário.

[Resolvido]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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