【问题标题】:Show div based on Radio Button (with POST)根据单选按钮显示 div(带 POST)
【发布时间】:2020-12-23 12:38:52
【问题描述】:

我知道有很多类似的问题,但我无法找到完全符合我想法的东西。我在第一页(和其他内容)上有一个单选按钮,还有一个将一些数据发布到另一个页面的提交按钮。在第二页上,我有 2 个 div,如果在第一页上选择了 option1,我想显示 div1,如果选择了 option2,我想显示 div2。看起来很简单,但我遇到了麻烦。有人可以帮我吗?这是我的代码:

第 1 页

<form method=post action='page2.php'>
  <input type="radio" id="option1" value="option1" name="options">
  <input type="radio" id="option2" value="option2" name="options">
  <button>Submit</button>
</form>

第 2 页

<?php $options = $_POST['options']; ?>
<div id="Div1" style="display: none"></div>
<div id="Div2" style="display: none"></div>

JS

$(function() {
 if ($options == 'option1') {
  document.getElementById(Div1).style.display = "block";
  document.getElementById(Div2).style.display = "none";
 }
 else if ($options == 'option1') {
  document.getElementById(Div2).style.display = "block";
  document.getElementById(Div1).style.display = "none";
 }
 return false;
});

【问题讨论】:

  • “有麻烦”什么麻烦?
  • 在您的示例中,“Page 2”和“JS”之间有一个服务器/客户端边界。 “第 2 页”中列出的 $options 与“JS”中的 $options 没有任何关系。

标签: javascript php html post radio-button


【解决方案1】:

使用php echo 是将PHP 变量向下传递到客户端javascript 的一种方式:

<?php $options = $_POST['options']; ?>
<div id="Div1" style="display: none"></div>
<div id="Div2" style="display: none"></div>
<script>
  $(function() {
   var $options = "<?php echo $options ?>"
   if ($options == 'option1') {
    document.getElementById(Div1).style.display = "block";
    document.getElementById(Div2).style.display = "none";
   }
   else if ($options == 'option1') {
    document.getElementById(Div2).style.display = "block";
    document.getElementById(Div1).style.display = "none";
   }
   return false;
  });
</script>

或者,您可以完全消除 javascript 和用户服务器端逻辑以仅呈现所需的 div:

<?php $options = $_POST['options'];
    if ($options == "option1"){
        echo "<div id='Div1'></div>"; 
    } else {
        echo "<div id='Div2'></div>";
    }
?>

【讨论】:

  • 我意识到我犯了一个“新手错误”:我有另一个带有单选按钮的页面,该按钮在点击时动态显示不同的 div,我只是重复使用相同的代码而没有想到我实际上没有这次不需要javascript,因为它不是动态的,但它是一个提交的表单!非常感谢!
猜你喜欢
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 2013-08-05
  • 2015-05-09
相关资源
最近更新 更多