如何使用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";
}
答案 0 :(得分: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 */
}
答案 1 :(得分:1)
很抱歉,如果我的评论看起来很苛刻,但我完全是关于新编码员自己学习基础知识而不依赖于提供答案。只是为了表明它可以完成 - 我只创建了三个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 - 提供代码示例。所以这篇文章更多的是关于教学而不是提供答案。我希望我能让这样的老师在简单地要求答案之前激发研究和理解。所以,现在我已经说过了 - 随意投票,但我支持我的理念并且不会删除这个答案,只是为了不进行投票。该论坛必须是教学环境和代码库。