【问题标题】:How to pass an a value from a page to another using javascript如何使用javascript将一个值从一个页面传递到另一个页面
【发布时间】:2016-06-18 23:21:33
【问题描述】:

如何使用 javascript 在 html 中将值或数组从一个页面传递到另一个页面。我不允许使用本地存储或会话只在页面之间传递变量。我正在从单选按钮发送值。我打算将结果存储在数组中,因为我正在跟踪用户的答案以在最后显示结果。如何将数组发送到quiz_5.html?我打算继续传递数组,而不是使用 cookie 或本地存储,因为我不允许这样做。

下面是我的代码:

<div>
    <form>
        <input type="radio" name="radio" value="correct" class="firstRow"> NASA.Gov
        <input type="radio" name="radio" value="incorrect" class="secondRow"> Data.Gov <br>
        <input type="radio" name="radio" value="incorrect" class="firstRow"> Facebook
        <input type="radio" name="radio" value="incorrect" class="secondRow"> XYZ.net <br>

        <input type="button" value="Submit & Next Question" onclick="getAnswer4(this.form)" class="firstRow">
        <input type="button" value="Cancel & Clear Selection" onclick="clearOptions(this.form)" class="secondRow">
    </form>
</div>

Javascript 代码:

function getAnswer4(form) {
    var a[];
    var value;

    var checked = form.querySelector("input[type=radio]:checked");

    if(!checked) {
        alert('Please select an answer');
        return;
    }
    else{
        value = checked.value;

    }
    a.push(value);
    location.href = "quiz_5.html";
}

【问题讨论】:

  • 您可以使用cookies吗?
  • 查询字符串可能吗? yourwebsite.com/page2.html?variablefrompage1=test 然后从您的 page2 上的 javascript 中读取查询字符串?
  • 我们需要更多细节。
  • 是否允许使用附加到页面 url 的 php 和查询字符串? www.samplePage.php?q=testValue 然后在 samplePage 上,使用 $_GET 超级全局数组获取查询
  • 对不起 Jennifer - 我是一名前任教师,我坚信自我教育对于发现和理解新概念的价值。我很乐意提供帮助,但您需要自己研究如何获取 url,将其拆分为组件(提示 - 在 js 中查找“拆分”)并利用您需要的部分。最好的学习方法是去做,而不是直接给出答案。做一些研究,发布你想出的东西,我很乐意从那里提供帮助。 :)

标签: javascript html


【解决方案1】:

整个表单应该只有一个 HTML 按钮。首先,让我们修复那个表单标签:

<form name='form' id='form' method='get' action='quiz_5.php'>

现在让我们在表单底部添加一个提交按钮:

<input type='submit' name='sub' id='sub' value='Submit' />

关于quiz_5.html

var pre = onload;
onload = function(){
if(pre)pre();

var resultObject = {};
var fs = location.search.replace('?', '').split('&');
for(var i=0,l=fs.length; i<l; i++){
   var z = fs[i].split('=');
   resultObject[decodeURIComponent(z[0])] = decodeURIComponent(z[1]);
}
/* resultObject now has values based on name attibute
   for instance resultObject.radio will hold value of name='radio' where it's checked */
}

【讨论】:

  • 你是什么意思#yourHashHere是我包含变量数组的地方
  • 哦,这仅适用于单个字符串值。在这种情况下'yourHashHere'。您需要 Cookie 或 GET URL。你需要一个数组来做什么?根据 name 属性只选择一个收音机。
  • 我有 5 个问题,我倾向于使用数组来跟踪用户的答案。如果我使用一个变量,它会覆盖以前的问题
  • 如果你想传递一系列答案(每个答案都有一个正确/错误的答案......将它们加入一个字符串 - 像 PHPglue 建议的那样传递它(尽管我会使用查询字符串而不是哈希(从语义上讲,它用于定位第二页上的 id 而不是查询值,但这就是我)。所以如果我回答 5 个问题并得到前 3 个正确而后 2 个不正确 -那么字符串将是#cccii....然后您可以将它们拆分为第 2 页上的 5 个结果。或者使用数字 1 表示正确,使用 0 表示不正确(使其成为 #11100)...
  • 再看代码,刚刚更新。您可能还想查看 jQuery 和 $(formSelector).serialize()
【解决方案2】:

很抱歉,如果我的 cmets 看起来很苛刻,但我只希望新的编码人员自己学习基础知识,而不依赖于提供的答案。只是为了表明它可以完成 - 我刚刚创建了三个 HTML 页面。在前两个中创建了一个表单 - 每个都包含您的问题(第一页中的问题 1 和 2,第二页中的问题 3),然后将表单值传递给下一个,仅使用 html。

然后在第二页和第三页上只使用 JavaScript,我从 URL 中获取值并对其进行处理。在第二页,我重新使用了第 1 页的值(想想这可能是如何完成的以及它为什么有用),以便将所有三个值都传递到第 3 页,然后使用 JavaScript 仅获取 3 个值,显示它们在页面上(如下面的代码部分所示)并计算正确答案的总数和百分比。请注意,我回答了问题,所以我的问题 2 不正确。

请注意,我不是给出使用的代码,而是会给你页面的 URL,以便你可以看到前两个页面的结果,然后可以开始思考我是如何实现的这个。

numbers1.html
numbers2.html?one=correct&two=incorrect
numbers3.html?one=correct&two=incorrect&three=correct

Question 1: correct

Question 2:incorrect

Question 3:correct

2/3

0.67% correct

我知道这不是一个传统的答案,但它不适合学习者简单地要求提供答案,尤其是当我能够在 10 分钟内将实现结果的三页放在一起时。如果您不尝试,那么您将无法自学。

一般说明:我和两位论坛成员今天下午花了很多时间试图帮助 OP 提供所需的代码 - 提供代码示例。所以这篇文章更多的是关于教学而不是提供答案。我希望在简单地询问答案之前,我有这样的老师来激发研究和理解。所以现在我已经说过了 - 随意投反对票,但我支持我的理念,不会删除这个答案,只是为了不投反对票。这个论坛一定是教学环境,也是代码库。

【讨论】:

  • (读者附注:此答案and this one 相同,请参阅另一份副本上的 cmets)。
猜你喜欢
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
相关资源
最近更新 更多