javascript - Store value in URL with keeping the original values in browser -
so i'm creating asp.net page using javascript calculate distance between 2 zipcodes. after submitting form, page shows both addresses , distance. however, want use these values in asp.net stored distance in url can call .net label when so, , since has go server, refreshes page , deletes javascript calculated values! want store distance in url in addition keep calculated values on page. here have
var geocoder, location1, location2; function initialize() { geocoder = new gclientgeocoder(); } function showlocation() { geocoder.getlocations(document.forms[0].address1.value, function (response) { if (!response || response.status.code != 200) { alert("sorry, unable geocode first address"); } else { location1 = {lat: response.placemark[0].point.coordinates[1], lon: response.placemark[0].point.coordinates[0], address: response.placemark[0].address}; geocoder.getlocations(document.forms[0].address2.value, function (response) { if (!response || response.status.code != 200) { alert("sorry, unable geocode second address"); } else { location2 = {lat: response.placemark[0].point.coordinates[1], lon: response.placemark[0].point.coordinates[0], address: response.placemark[0].address}; calculatedistance(); } }); } }); } function calculatedistance() { try { var glatlng1 = new glatlng(location1.lat, location1.lon); var glatlng2 = new glatlng(location2.lat, location2.lon); var miledistance = glatlng1.distancefrom(glatlng2, 3959).tofixed(1); var kmdistance = (miledistance * 1.609344).tofixed(1); document.getelementbyid('results').innerhtml = '<strong>address 1: </strong>' + location1.address + '<br /><strong>address 2: </strong>' + location2.address + '<br /><strong>distance: </strong>' + miledistance + ' miles (or ' + kmdistance + ' kilometers)'; //+ '<br /><strong>hiddenfield </strong>' + miledistance; var loc = self.location.href; window.location.href = loc+"?d="+miledistance; } catch (error) { alert(error); } } </script>
<form action="#" onsubmit="showlocation();return false;"> <p> <input type="text" name="address1" value="45419" class="address_input" size="40" /> <input type="text" name="address2" value="47714" class="address_input" size="40" /> <input type="submit" name="find" value="search" /> </p> </form> <p id="results"></p> <form id="form1" runat="server"> <div> <asp:label id="label3" runat="server"></asp:label> <br /> <asp:label id="label2" name="address1" value="address 1" class="address_input" size="40" runat="server"></asp:label> <br /> <asp:label id="label1" runat="server"></asp:label> <br /> <br /> <asp:button id="button1" runat="server" postbackurl="~/size.aspx?a='miledistance'" text="next" /> </div> </form>
you should pass values server using form fields, not parameters in url.
try adding hidden field form called distance:
<input type="hidden" name="distance" value=""/> then populate hidden field in calculatedistance() function:
document.getelementbyid('distance').value = miledistance; then can grab value server side:
string distance = request["distance"]; or
int distance = convert.toint32(request["distance"]); use literal form controls if want display value on screen after post back.
good luck!
Comments
Post a Comment