Ir para conteúdo
Fórum Script Brasil
  • 0

Ajax com Jquery


ju_rezende

Pergunta

Bom dia Pessoal

Estou aprendendo ajax com jquery para um carrinho de compra mas estou com uma dificuldade, vou explicar o meu projeto para que entendam minha dificulade.

Possuo um banco temporário carrinho que é criado para cada cliente ao entrar na página, onde no mesmo ficam armazenado os dasdos dos produtos.

No site possuo um pagina chamada detalhes do produto, e nela possuo um formulário que envia o código do produto para a página do carrinho de compra.

na página de carrinho de compra eu uso ajax e jquery para remover itnes do carrinho e para alterar quantidade de itens do produto.

1º problema,

caso eu exclua todos os itens do carrinho e depois e pressione a tecla f5 para atualizar a página, o post da página aterior não é perdido, ou o carrnho acaba sendo criado novamente sem escolhar o produto, pois existe este post da página detalhes.

2º problema,

Não estou conseguindo somar os subtotais para gerar o tatal da compra

3º problema,

eu tenho um include no site chamado quantidade de itens, onde ficaria armazenado o total de itens do carrinho independete da página que o cliente esteja, mas eu consgio fazer isso apenas na página de carrinho quando o usuário vai para outra página, este valor é perdido.

vou colocar o meu codigo aqui para você olharem, é a primeira vez que trabalho com ajax e jquery, e estou ficando desesperada, pois meu prazo está acabando e ainda tenho a parte de cálculo do frete pra fazer e não sei nem por onde começar, por favor caso alguém tenha um tempo, me dê uma luz de como solucionar este problema

Desde já grata pela atenção de todos

$(document).ready(function(){
    $(".remover a").click (function(){ 
        var cod_item=$(this).attr("rel") 
        //alert(cod_item)
        if ($(this).attr("rel") != ''){
        $.ajax({
                type: "GET",
                url: "remover_item.asp",
                data: "id="+cod_item+"",
                success: function(remover){
                     if(remover == "ok"){
                        $("#item_"+cod_item).remove();
                        //resetnado form
                        
                        //fim reset form
                     }
                }
        })
        
        }
        
        return false 
    })
    $(".up").blur(function(){ 
    //$(".up").blur(function(){ 
        var cod_item=$(this).attr("id")
        //alert(cod_item)
        if (cod_item != ''){
            //alert("não vazio")
            //$("#caracteres input").blur(function(){
            
                //alert ("on blur entrou");
                var quantidade=$(this).attr("value"); //pega o value do input
                
                var quant_antiga = $("#valor_antigo"+cod_item.substring(3)).attr("value"); //recupera o valor do input hiden
                //var subt= $("#t_"+cod_item.substring(3)).attr("value"); 
                //alert("sub " +subt);
                //alert(quantidade);
                var cod_produto= cod_item.substring(3); //tira a string do cod_item
                //alert(cod_produto);
                //alert ("antiga quantidade");
                //alert(quant_antiga);
                if(quant_antiga != quantidade){ //se a quantidade antiga não for = a quantidade
                    //alert ("cai vai para o ajax")
                    
                    $.ajax({//chama o ajax
                            type: "GET",
                            url: "alterar_item.asp",
                            data: "id="+cod_item+"&quant="+quantidade+"", //passa os parametro da querystring(id e quant)
                            success: function(subtotal){ //funcao para recuperar oa resposta do .asp  
                             //alert("Atualizando valores")
                                if(subtotal == "não estoque"){
                                     alert("Estoque Insuficiente");
                                     $("#qt_"+cod_produto).val(quant_antiga);
                                 } else if (subtotal == "zero")  {
                                     alert("Foi inserido quantidade de valor nulo (zero)");
                                     $("#qt_"+cod_produto).val(quant_antiga);
                                 } else if (subtotal == "não numero")   {
                                     alert("A quantidade inserida não é um numero");
                                     $("#qt_"+cod_produto).val(quant_antiga);
                                 } else {
                                    var subt= $("#t_"+cod_item.substring(3)).val();
                                       alert("sub " +subt);
                                     separando = subtotal.split("-"); 
                                    $("#subtotal_"+cod_produto).html(separando[0]);//altera o valor do subtotal
                                    //alert ("cod_item"+cod_item.substring(3));
                                    $("#t_"+cod_item.substring(3)).val(separando[2]);
                                    $("#t_"+cod_item.substring(3)).val(separando[2]);
                                    
                                    alert(separando[2])
                                    alert(cod_item.substring(3));
                                    //$("#t_"+cod_item.substring(3)).val(separando[2]);
                                    //altera o valor do total hiden
                                    //alert(separando[0]);
                                    $("#uni_"+cod_produto).html(separando[1]);
                                    $("#valor_antigo"+cod_item.substring(3)).val(quantidade);//altera o value do input hiden
                                 }
                             }
                    })

                }
        }
        return false 
    })
})
agora a minha página de carrinho, eu uso asp, mas vou postar só para caso seja necessario alguma análize, vou postar apenas as partes do carrinho
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script src="ajax.js" type="text/javascript"></script> //o ajax aqui é o codigo acima  que está separado

              <%' *****************************************************
                '        Verificando se o banco temporário existe
                '*******************************************************
                if session("carrinho")="" or isempty(session("carrinho"))=true then
                    session("carrinho")=Request.ServerVariables("REMOTE_ADDR")
                    'Verificando se existe um banco de dados com o mesmo nome
                    Set Arquivo = Server.CreateObject("Scripting.FileSystemObject")
                        'response.write "fso caminho " & caminho & FName & "<br>"
                    FileName=Server.MapPath("temp_carrinho/" & session("carrinho") &".mdb") 
                    If Arquivo.FileExists(FileName) Then
                        Arquivo.DeleteFile FileName
                        'response.write "carrinho deletado"
                    end if
                    set Arquivo = nothing
                    ' *****************************************************
                    '        Criando banco temporário
                    '*******************************************************
                    Dim bancodados 
                    'caminho=Server.Mappath("temp_carrinho/") & "\"
                    Set bancodados = CreateObject("ADOX.Catalog") 
                    bancodados.Create "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=" & Server.MapPath("temp_carrinho/" & session("carrinho") &".mdb") 
                    Set bancodados = Nothing 
                    'response.write "banco criado"
                    
                    ' *****************************************************
                    '        Criando tabela do banco temporário
                    '*******************************************************                    
                    Set conexao = Server.CreateObject("ADODB.Connection")
                    caminho = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("temp_carrinho/" & session("carrinho") &".mdb")
                    
                    conexao.open caminho
                    
                    strsql = "CREATE TABLE carrinho "
                    strsql = strsql & "( "
                    strsql = strsql & "id_carrinho AUTOINCREMENT, "
                    strsql = strsql & "cod_produto int, "
                    strsql = strsql & "produto text, "
                    strsql = strsql & "quantidade int, "
                    strsql = strsql & "valor_varejo MONEY, "
                    strsql = strsql & "valor_atacado MONEY, "
                    strsql = strsql & "promocao_varejo MONEY, "
                    strsql = strsql & "promocao_atacado MONEY, "
                    strsql = strsql & "ip  char(50),"
                    strsql = strsql & "estoque  int,"
                    strsql = strsql & "peso MONEY,"
                    strsql = strsql & "Primary Key (id_carrinho) "
                    strsql = strsql & ");"
                    
                    Set rs_carrinho = Server.CreateObject("ADODB.Recordset")
                    rs_carrinho.open strsql, conexao, 3,3
                    'rs_carrinho.close
                    set rs_carrinho=nothing
                    'conexao.close
                    set conexao=nothing
                    'response.write "<br> tabela criada"
                    ' *****************************************************
                    '        Adicionando itens do produto no carrinho
                    '*******************************************************
                    if request.form("codigo")<>"" or isEmpty(request.form("codigo"))=false then
                        'response.write "codigo" & request.form("codigo")
                        set conexao = Server.CreateObject("ADODB.Connection")
                        set rs_carrinho = server.CreateObject ("adodb.recordset")
                        conexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("temp_carrinho/" & session("carrinho") &".mdb")
                        sql_carrinho="select * from carrinho"
                        rs_carrinho.open sql_carrinho,conexao,3,3
                        
                        rs_carrinho.addnew
                            rs_carrinho("cod_produto")=request.form("codigo")
                            rs_carrinho("produto")=request.form("nome_produto")
                            rs_carrinho("quantidade")=1
                            rs_carrinho("valor_varejo")=request.form("valor")
                            rs_carrinho("valor_atacado")=request.form("valor_atacado")
                            rs_carrinho("promocao_varejo")=request.form("promocao_varejo")
                            rs_carrinho("promocao_atacado")=request.form("promocao_atacado")
                            rs_carrinho("peso")=request.form("peso")
                            rs_carrinho("ip")=session("carrinho")
                            rs_carrinho("estoque")=request.form("estoque")
                        rs_carrinho.update
                    end if
                    'response.write "<br> registros cadastrados"
                else 
                    if request.form("codigo")<>"" or isEmpty(request.form("codigo"))=false then
                        'Se a session("carrinho") não é vazio, então apenas adicionamos o produto na cesta 
                        set conexao = Server.CreateObject("ADODB.Connection")
                        set rs_carrinho = server.CreateObject ("adodb.recordset")
                        conexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("temp_carrinho/" & session("carrinho") &".mdb")
                        sql_carrinho="select * from carrinho where cod_produto=" &request.form("codigo")& ""
                        rs_carrinho.open sql_carrinho,conexao,3,3
                        'verifica se o produto já esta no carrinho 
                        if rs_carrinho.eof=true then
                            'se não adiciona ao carrinho
                            rs_carrinho.addnew
                            rs_carrinho("cod_produto")=request.form("codigo")
                            rs_carrinho("produto")=request.form("nome_produto")
                            rs_carrinho("quantidade")=1
                            rs_carrinho("valor_varejo")=request.form("valor")
                            rs_carrinho("valor_atacado")=request.form("valor_atacado")
                            rs_carrinho("promocao_varejo")=request.form("promocao_varejo")
                            rs_carrinho("promocao_atacado")=request.form("promocao_atacado")
                            rs_carrinho("peso")=request.form("peso")
                            rs_carrinho("ip")=session("carrinho")
                            rs_carrinho("estoque")=request.form("estoque")
                            
                            rs_carrinho.update
                            'response.write "adicionando ao carrinho"
                        else 'verificar se está sendo solicitado alteração de quantidade
                        end if
                        rs_carrinho.close
                        set rs_carrinho =nothing
                        conexao.close
                        set conexao=nothing
                    end if
                end if    
%>
        <%if session("carrinho") <> "" or isEmpty(session("carrinho"))=false then
                set conexao = Server.CreateObject("ADODB.Connection")
                set rs_carrinho = server.CreateObject ("adodb.recordset")
                conexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("temp_carrinho/" & session("carrinho") &".mdb")
                sql_carrinho="select * from carrinho  order by id_carrinho desc"
                'RESPONSE.WRITE sql_carrinho
                rs_carrinho.open sql_carrinho,conexao,3,3
                if rs_carrinho.eof=false then 
                rs_carrinho.movefirst
                response.write session("carrinho")%>
                <form action="#" method="post">
                <table id="caracteres" width="569" border="0" cellspacing="2" cellpadding="2">
                  <tr bgcolor="#999999" >
                    <td width="240" height="23" class="titulo_table">PRODUTOS</td>
                    <td width="70" class="titulo_table">QTDADE</td>
                    <td width="78" class="titulo_table">VALOR UNIT&Aacute;RIO</td>
                    <td width="79" class="titulo_table">SUBTOTAL</td>
                    <td width="70" class="titulo_table">REMOVER ITEM</td>
                  </tr>
                        
                  <% 
                  do while rs_carrinho.eof=false
                      if cor="#ffffff" then 
                        cor="#e1e1e1"
                      else 
                        cor="#ffffff"
                      end if%>
                      <tr bgcolor="<%=cor%>" id="item_<%=rs_carrinho("cod_produto")%>">
                        <td><%=server.HTMLEncode(rs_carrinho("produto"))%></td>
                        <td class="conteudo_table">
                        <input type="hidden"  name="valor_antigo<%=rs_carrinho("cod_produto")%>" id="valor_antigo<%=rs_carrinho("cod_produto")%>" value="<%=rs_carrinho("quantidade")%>" />
                        <input type="text" class="up" name="qt_<%=rs_carrinho("cod_produto")%>" id="qt_<%=rs_carrinho("cod_produto")%>" value="<%=rs_carrinho("quantidade")%>" />
                        <br /> estoque= <%=rs_carrinho("estoque")%></td>
                        <%if rs_carrinho("quantidade")<6 then %>
                            <td class="conteudo_table">
                                <div id="uni_<%=rs_carrinho("cod_produto")%>">
                                <%=formatcurrency(rs_carrinho("valor_varejo"))%>
                                </div>
                            </td>
                            <td class="conteudo_table" >
                            <div id="subtotal_<%=rs_carrinho("cod_produto")%>" >
                            
                            <%subtotal=rs_carrinho("quantidade")*rs_carrinho("valor_varejo")
                            response.write formatcurrency(subtotal)%> 
                            <input id="t_<%=rs_carrinho("cod_produto")%>" name="t_<%=rs_carrinho("cod_produto")%>" type="hidden" class="subtotal1"  value="<%=subtotal%>" />                       
                            </div>
                            </td>
                        <%else%>
                            <td class="conteudo_table">
                                <div id="uni_<%=rs_carrinho("cod_produto")%>">
                                <%=formatcurrency(rs_carrinho("valor_atacado"))%>
                                </div>
                            </td>
                            <td class="conteudo_table">
                                <div id="subtotal_<%=rs_carrinho("cod_produto")%>">
                                <%subtotal=rs_carrinho("quantidade")*rs_carrinho("valor_atacado")
                                response.write formatcurrency(subtotal)%>
                                </div>                            
                            </td>
                        <%end if%>
                        <td class="conteudo_table">
                            <div class="remover">
                              <a href="#" rel="<%=rs_carrinho("cod_produto")%>" title="Remover item do carrinho" >
                                <img src="/images/remove_item.gif" alt="Remover Item do carrinho" />                            
                              </a> 
                            </div>                       
                        </td>
                      </tr>
                 <%rs_carrinho.movenext
                 loop%>
                 
                </table>
                </form>
                <div id="total">
                total
                </div>
                <%else
                    response.write "Carrinho de compras vazio"%>
                <%end if%>
            <%end if%>

grata

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...