将来自服务器的数据从一个页面传递到另一个页面,而不使用表单

Posted

技术标签:

【中文标题】将来自服务器的数据从一个页面传递到另一个页面,而不使用表单【英文标题】:Passing data that is coming from a server, from one page to another in javascript without using forms 【发布时间】:2015-11-09 02:09:12 【问题描述】:

我对 javascript 没有太多把握,并且遇到了问题。 我的数据来自服务器,当点击一个项目时,用户将被重定向到一个包含该项目所有详细信息的新页面。问题是当用户点击一个项目时,如何将数据从一个页面发送到下一个页面。 没有使用 php。使用的 javascript ajax jquery 和来自 json 的数据

这是一种格式,当用户单击播放按钮时,应在向用户显示数据的位置显示新的年龄。

Template="Big_Display_Template": '#items<input type="hidden" name="guid" value="id"><div class="hero" 
style="background-image:url(videoStillURL)"><div class="hero-content"><br>
<h2>name</h2> <p>shortDescription</p> <div class="hero-links"><a href="Watch_Live.html"      
onclick="PassDataToNextPage(name,id,shortDescription);">
Play<span class="genericon genericon-play"> </span></a></div> 
<div class="hero-links-fav"><a href="#">Favourite<span class="genericon genericon-fav"> 
</span></a></div></div></div>/items'

这是我的函数 PassDataToNextPage()

    function PassDataToNextPage(name,guid,Description)
    
        var url = 'Watch_Live.html';

        $.ajax(
        url: url,
        type: 'POST',
        data: 'name=' + name + '&guid=' + guid + '&shortDescription=' + Description,

success: function(result) 
     dataUrl=data;

    
);
        return window.location+"/"+dataUrl;
    

我知道这是错误的,但如何改正呢?提前非常感谢

【问题讨论】:

通过格式化您的代码使其更具可读性来使其正确。 【参考方案1】:

看起来你想传递数据并带着数据进入下一页,你不需要ajax来实现。简单地说:

function PassDataToNextPage(name,guid,Description)

    var url = 'Watch_Live.html';
    window.location.href = url + '?name=' + name + '&guid=' + guid + '&shortDescription=' + Description;

评论:

    你可以使用:

    播放

点击事件将由onclick中的函数PassDataToNextPage处理。

    假设您在下一页使用 PHP,您可以获取数据

    $name = $_GET['name']; $guid = $_GET['guid']; $shortDesc = $_GET['shortDescription'];

【讨论】:

我应该在play中写些什么 我将如何从下一页的查询字符串中获取数据@jackie【参考方案2】:

您可以通过 url GET 参数传递 key:value 数据。 例如:如果你想向这个页面传递数据:Watch_Live.html,你可以这样做:

<a href="Watch_Live.html?name=someName&guid=you_guid"><button>Pass data</button></a>

要解析其他页面中的参数,请阅读此 SO answer to a similar question。 https://***.com/a/901144/4440845

【讨论】:

【参考方案3】:

问题出在return window.location+"/"+dataUrl;这一行:重定向应该在success函数内部完成,因为它会在请求完成时被调用:

function PassDataToNextPage(name,guid,Description)

  var url = 'Watch_Live.html';

  $.ajax(
    url: url,
    type: 'POST',
    data: 'name=' + name + '&guid=' + guid + '&shortDescription=' + Description,
    success: function(result) 
      dataUrl = data;
      window.location = window.location + "/" + dataUrl;
    
  );

在模板中,您必须在onclick 属性中添加return false,以避免浏览器跟随链接中断您的处理程序:

<a href="Watch_Live.html" onclick="PassDataToNextPage(name,id,shortDescription);return false">

【讨论】:

我应该在play中写些什么

以上是关于将来自服务器的数据从一个页面传递到另一个页面,而不使用表单的主要内容,如果未能解决你的问题,请参考以下文章

将数据从页面传递到另一个页面

使用 header() 将数据从一个 PHP 页面传递到另一个页面

使用 java servlet 将数据从一个 html 页面传递到另一个页面

将变量从一个 HTML 页面传递到另一个页面的最佳实践是啥?

如何通过使用 node.js 和 express 的 onclick 将数据从一个页面传递到另一个页面?

Laravel 将数据从一个视图传递到另一个视图