我创建了一个包含多个部分的表单。每次从部分的下拉列表中选择答案时,页面都会清除/刷新已从其他部分输入的数据。我使用“onchange”事件的原因是在提交表单之前在底部显示计算。
B节:
<label class="sr-only" for="answerone"></label>
<select id="answerOne" name="answerone" onchange="this.form.submit();" class="form-control">
<option value="0" <?php if(isset($_GET['answertwo']) && $_GET['answertwo']=="0") echo "selected"?>>Select One</option>
<option value="1" <?php if(isset($_GET['answertwo']) && $_GET['answertwo']=="1") echo "selected"?> >No</option>
<option value="2" <?php if(isset($_GET['answertwo']) && $_GET['answertwo']=="2") echo "selected"?>>Yes</option>
<option value="3" <?php if(isset($_GET['answertwo']) && $_GET['answertwo']=="3") echo "selected"?>>NA</option>
</select>
E部分:
<php ?
$totalscore=array($_GET['answerone'],$_GET['answertwo'], $_GET['answerthree']);
echo array_sum($totalscore) . "%";
?>
也许使用php的JavaScript或ajax可以工作。我尝试过使用,但我不知道如何将JavaScript变量存储到php变量中。我有大约10个问题。
答案 0 :(得分:0)
<form>
的默认方法是POST,因此您的其他数据位于$_POST
变量中。没看到你的<form>
标签是什么样的,很难说这是不是问题。
听起来你想要的是每次都不提交表单,而是使用AJAX来处理它。例如,在任何特定的<input/>
标记上,连接一个事件以在某处保存数据并将新数据显示在您的计算中。
答案 1 :(得分:0)
客户端代码(即JavaScript)与服务器端代码的生命周期不同,这似乎引起了混淆。这听起来像是发生了什么:
解决方案是:
确切的解决方案当然取决于您的实际问题。