[Resolvido] Problemas ao passar variavel js para php
Eae galera, faz um tempinho que não posto nada :grin:
Eu estou com um problema, eu andei procurando alguns métodos para passar uma variável javascript para php, tentei implementar, mas está dando erro.
Vou explicar:
Eu estou desenvolvendo um sistema que faz calculo de frete, quando o usuário vai fazer o orçamento ele tem que colocar cidade origem e destino, assim que clica aparece o mapa, ele clica em "Traçar Rota" e o mapa mostra a rota de cidade para cidade, mas aqui começam os problemas, eu até consigo dar um alert em js que mostra os metros de cidade para cidade, mas gostaria de pegar esse valor em php para futuros cálculos.
Eu li um artigo de como fazer para pegar uma variável js e passar para php, tentei implementar no meu código mas não deu certo.
Erro: Notice: Undefined index: dados_enviar in C:\wamp\www\fretabrasilbeta\user\orcamento.php on line 187
Eu coloquei a variavel dentro da div directionsPanel porque ela aparece depois que eu clico pra traçar a rota, mas mesmo antes de clicar aparece o erro.
edit: desculpa ae galera pelo código grande, ficou um pouco bagunçado :upset:
echo'
<input type="button" onclick="revRoute();" class="revRoute"/>
<div class="left">
<form onsubmit="calcRoute();return false;" >
<label for="inputStart" class="inputStart" ></label>
<input type="text" class="text" value="'.htmlentities($corigem).','.htmlentities($eorigem).'" id="inputStart" />
<label for="inputEnd" class="inputEnd"></label> <input type="text" class="text" value="'.htmlentities($cdestino).','.htmlentities($edestino).'" id="inputEnd" />
<input type="submit" value="Traçar Rota" />
<input type="hidden" id="dados" name="dados_enviar" value="" />
</form>
</div>
<div id="mapa" class="mapa"></div>
<div id="directionsPanel">';
$dist = $_POST[ 'dados_enviar'];
echo '</div>
<hr />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var route = false;
var map;
var marker;
var geocoder;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
geocoder = new google.maps.Geocoder();
var myLatlng = new google.maps.LatLng(-23.5489433, -46.6388182);
var myOptions = {
zoom: 17,
center: myLatlng,
mapTypeControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("mapa"), myOptions);
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById("directionsPanel"));
}
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 objetoDados = document.getElementById("dados");
var rota = response.routes[0]; /* Primeira rota */
var etapa = rota.legs[0]; /* única etapa dessa rota */
distancia = etapa.distance.value;
objetoDados.value = distancia;
alert ("Aproximadamente => " + Math.round(distancia / 1000) + " km.");
}
});
}
function revRoute(){
var divStart = document.getElementById("inputStart");
var divEnd = document.getElementById("inputEnd");
var start = divStart.value;
var end = divEnd.value;
divStart.value = end;
divEnd.value = start
if( route == true){
calcRoute();
}
}
</script>
</div>';Discussão (7)
Carregando comentários...