Jump to content
Fórum Script Brasil
  • 0

Calcular frete com JQuery e atualizar divs


Eder Cuer
 Share

Question

Eae galera, eu fiquei alguns minutos pra arrumar um nome pra esse tópico e ainda assim ficou meio confuso, me desculpem.

Eu estou tentando desenvolver um sisteminha de calcular frete.

Em um formulário php o usuário escolhe cidade e estado (origem/destino), assim que o usuário clica em procurar o sistema busca as transportadoras que atendem aquelas cidades e estados, e junto com as transportadoras aparece um mapa.

Agora começa meu probleminha, bom... assim que o usuário clica em "Traçar Rota" eu pego a distância de cidade para cidade, envio por $.post(), pego a distância e atualizo as divs "preço" (são criadas dinamicamente, dependendo de quantas transportadoras atendem aquela rota), fiz isso só pra teste mesmo.

No banco de dados de cada transportadora tem um campo "precoMetro", que é quanto uma transportadora cobra por metro. Agora eu queria saber um jeito de ao invés de colocar a distância, eu colocar o preço mesmo, fazer os cálculos.

Pessoal se for uma coisa muito simples eu peço desculpa, não entendo muito de javascript/jquery/ajax.

Vou postar algumas imagens pra vocês entenderem melhor, e meu código também

imgel.jpg

img6r.jpg

Aqui é o formulário onde eu chamo a função:

<div class="left">
        <form id="formulario" name="formulario" onsubmit="calcRoute(); return false;" >
                <label for="inputStart" class="inputStart" ></label> 
                <input type="text" readonly="readonly" class="text" value="'.htmlentities($corigem).','.htmlentities($eorigem).'"
 id="inputStart"  />
                <br />
                <label for="inputEnd" class="inputEnd"></label> <input type="text" readonly="readonly" class="text" value="'.htmlentities($cdestino).','.htmlentities($edestino).'"
 id="inputEnd" />
                <input type="submit" id="tracar" name="tracar" value="Traçar Rota" />
                <input type="text" id="distancia" name="distancia" />
                                                                                        
        </form> 
                                                                                
</div>
Aqui é minha função
function calcRoute() {
        if (marker) marker.setMap(null);
        route = true;
        var start = document.getElementById("inputStart").value;
        var end = document.getElementById("inputEnd").value;
                        
        var request = {
                origin:start, 
                destination:end,
                travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        directionsService.route(request, function(response, status) {
                if (status == google.maps.DirectionsStatus.OK) {
                        directionsDisplay.setDirections(response);
                        var distancia;
                                                                                                                                                   
                        var rota = response.routes[0]; 
                        var etapa = rota.legs[0]; 
                                                                                
                        distancia = etapa.distance.value;
                                                
                        document.getElementById("distancia").value = distancia;

                 }
                                                                                        
                var distancia = $("#distancia").val();
               
                                                                                        
                $.post("calcula.php", { distancia:distancia, ';for( $i = 0; $i < mysql_num_rows($result); $i++ ){echo 'preço'.$cod.':preço'.$cod.',';}echo '}, function(get_retorno) {';
                                                                                                                                                                                        
                for ( $i = 0; $i < mysql_num_rows($result); $i++ )
                {
                                                                                                
                        $cod  = mysql_result($result, $i, 'cod_transp');
                        $nome = mysql_result($result, $i, 'nome');
                        echo '$("#preço'.$cod.'").show("slow").text(get_retorno);'
; 
                        echo "\n";
                                                                
                }                                                                        
                echo '  
        });
                                                                                        
});

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.9k
    • Total Posts
      648.7k
×
×
  • Create New...