首页 > 解决方案 > PHP 多页面表单将 PHP 变量转换为不同页面上的 JavaScript

问题描述

我有一个包含许多变量的工作表单,我需要一个或两个申请人的选项我正在研究的解决方案是为第二个申请人隐藏 HTML 字段,直到勾选复选框。我在第一页上有隐藏和显示工作,并且我已经将复选框状态设置为 PHP 中的变量,但我无法弄清楚如何在下一页上获取 PHP 变量以自动触发第二个申请人字段。在过去的事情中,我尝试在 chrome 上查看开发工具,它告诉我变量返回为空,但是如果我在 HTML 中的同一页面上使用相同的变量而不是 JavaScript,它会清楚地显示广告“打开”。

我正在尝试的最新方法是将变量转换为 JSON,但仍然没有运气。

<!DOCTYPE html>
<html>
<body>

<!-- p elements only for testing to see outputs -->
<p id="test"> <?php echo $twoapplicants ?></p>
<p id="test2"></p>

<!-- something to look at after endless page refreshs -->
<h2>Two Applicants Test Page</h2>


<!-- Hidden untill Toggleextrafields() is triggered fields need to be present on page but only showed if a variable from the previous page is "on" -->
<p class="extrafields" style="display:none">now you see me</p>


<script>

//$twoapplicants defined as on on another page in a PHP run multipage form
<?php
$twoapplicants = "on";
?>

//test for value set on previous page on page load
window.onload = pageload();


// trigger Toggleextrafields if variable is equal to "on"
function pageload(){
var a =<?php echo json_encode($twoapplicants); ?>;
var b = JSON.parse(a);
document.write (b);
document.getElementById('test2').innerHTML = b;
if(b === "on"){
Toggleextrafields();
}
else {extrafieldsoff();
}
}

// toggle extra fields and make them visible if they aren't already (this already works)
function Toggleextrafields() {
  var x = document.getElementsByClassName("extrafields");
  var i;
  for (i = 0; i < x.length; i++){
  if (x[i].style.display === "block") {
    x[i].style.display = "none";
  } else {
    x[i].style.display= "block";
  }
 }
}

// hides extra fields if they aren't hidden already and the trigger isn't there
function extrafieldsoff() {
  var x = document.getElementsByClassName("extrafields");
 {
    x.style.display = "none";
  }
}

</script>


</body>
</html> 

标签: javascriptphphtmljquery

解决方案


推荐阅读