在另一页显示javascript函数结果

时间:2017-10-02 18:17:13

标签: javascript asp.net asp.net-mvc html5 google-maps

晚上好, 我想知道如何将第1页的导入数据显示到第2页的视图,从输入调用函数GetRoute()。 这是我的代码: Html第1页:

<div> Add Destination</div>
    <div>
        <input id="travelto" type="text" name="name" value="Oving, UK" />
        <input type="button" value="Add" onclick="PushDestination()" />
        <a href="#" onclick="setDestination('Tagmere, UK')">Tagmere, UK. </a>
        <a href="#" onclick="setDestination('Bosham, UK')">Bosham, UK</a>
    </div>
    <div id="destinations"></div><br />
    Source : <input id="travelfrom" type="text" name="name" value="Chichester, UK" />   <br />  <br />

    <input type="button" value="Calculate" onclick="GetRoute()"  />

html page2 结果将显示在第二页的表格中:

     <div id="dvDistance">
        <table id="tblResults" border="1" cellpadding="10">
            <tr>
                <th> Start </th>
                <th> End </th>
                <th> Distance </th>
                <th> Duration </th>
            </tr>
        </table>

    </div>

我的函数来自javascript:

  function GetRoute() {

        directionsDisplay.setMap(map);

        source = document.getElementById("travelfrom").value;
        destination = document.getElementById("travelto").value;

        var waypoints = [];
        for (var i = 0; i < locations.length; i++) {
            var address = locations[i];
            if (address !== "") {
                waypoints.push({
                    location: address,
                    stopover: true
                });
            }
        }

        var request = {
            origin: source,
            destination: waypoints[0].location,
            waypoints: waypoints, //an array of waypoints
            optimizeWaypoints: true, //set to true if you want google to determine the shortest route or false to use the order specified.
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };

        directionsService.route(request, function (response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                var dvDistance = document.getElementById("dvDistance");
                var distance = 0;
                var minute = 0.00;
                response.routes[0].legs.forEach(function (item, index) {
                    if (index < response.routes[0].legs.length - 1) {
                        distance = distance + parseInt(item.distance.text);

                        minute = parseFloat(minute) + parseFloat(item.duration.value / 60);




                             tbl = document.getElementById("tblResults");

                                var row = tbl.insertRow(1);
                                var cell = row.insertCell(0);
                                cell.innerText = source;
                                var cell = row.insertCell(1);
                                cell.innerText = item.end_address;
                                var cell = row.insertCell(2);
                                cell.innerText = distance;
                                var cell = row.insertCell(3);
                                cell.innerText = minute.toFixed(2) + " min";


                    }
                });
                directionsDisplay.setDirections(response);
            }
            else {

            }
        })
    };

我必须显示结果才能显示在第二页中,从第一页获取数据。 thnaks,

3 个答案:

答案 0 :(得分:0)

您可以使用HTML5会话本地存储:

sessionStorage.getItem('label')
sessionStorage.setItem('label', 'value')

localStorage.getItem('label')
localStorage.setItem('label', 'value')

取决于您希望将结果存储多长时间。

答案 1 :(得分:-1)

我们可以在其中使用Cookie作为商店数据,我们可以使用存储在请求cookie中的数据。

答案 2 :(得分:-2)

您可以使用查询字符串或哈希。使用散列,您可以从URL中删除散列而不刷新页面。此外,您可以使用history.replaceState从网址中删除查询字符串,而无需刷新。

以下是一个例子:

http://id0t.x10.mx/StackOverflow/demo2a.html

用它来获取来源。

编辑:

第1页

<textarea onchange="sendres(myFunc(this.value),'/StackOverflow/demo2b.html');" placeholder="type in me and press enter (or click out of me) to submit!"></textarea>
<script>
function sendres(callback,url){
  window.location.href=url+"?"+encodeURIComponent(callback);
}
function myFunc(text){
  return text;
}
</script>

第2页

<script>
window.onload=function(){
  if((window.location.search.length==0)||(window.location.search.length==1)){
    //no query string
    document.getElementById("msg").style.display="none";
    return;
  }else{
    res = decodeURIComponent(window.location.search.substr(1));
    var url = window.location.origin+window.location.pathname;
    history.replaceState({urlPath:url},"",url);
  }
  alert(res);
}
</script>
<span id="msg">Now, look at the URL. See how it has no query string?<br><button onclick="document.body.parentElement.innerHTML=atob();">Source</button></span>
<button onclick="window.location='/StackOverflow/demo2a.html';">to part 1</button>