【问题标题】:Processing radio buttons in loop in PHP在 PHP 中循环处理单选按钮
【发布时间】:2014-05-22 17:40:51
【问题描述】:

我有一个迭代 3 次的循环。在循环内部,我有一个带有单选按钮的 HTML 表单。我正在使用 PHP 处理输入。当我回显表单数据时,它没有显示正确的值。这是处理数据的错误方式吗?任何帮助表示赞赏。

test.php

<?php
for ($i = 1; $i <= 3; $i++) {
    ?>

    <form action = 'test.php' method = 'post'>
        <input type="radio" name="num<?php echo $i; ?>" value="one">One<br>
        <input type="radio" name="num<?php echo $i; ?>" value="two">Two
    </form>

    <?php
}
?>

<input type = 'submit' value = 'Go'>

<?php
for ($i = 1; $i <= 3; $i++) {
    echo $_POST['num' . $i];
}
?>

【问题讨论】:

  • print_r($_POST); 说什么?

标签: php html forms radio


【解决方案1】:

您有 3 个没有提交按钮的表单(它需要位于标签之间)。您需要使用这样的一个提交按钮创建一个表单,以便将所有数据发布到 $_POST。

<form method='post'>
<?php
for ($i = 1; $i <= 3; $i++) {
    ?>
        <input type="radio" name="num<?php echo $i; ?>" value="one">One<br>
        <input type="radio" name="num<?php echo $i; ?>" value="two">Two
    <?php
}
?>
<input type = 'submit' value = 'Go'>
</form>

<?php
for ($i = 1; $i <= 3; $i++) {
    echo $_POST['num' . $i];
}
?>

【讨论】:

    【解决方案2】:

    使用以下代码:或者您可以使用 radiogroup 数组,它比这更容易。

    <form action = 'test.php' method = 'post'>
    <?php
    for ($i = 1; $i <= 3; $i++) {
    ?>
    <input type="radio" name="num<?php echo $i; ?>" value="one">One<br>
        <input type="radio" name="num<?php echo $i; ?>" value="two">Two
    <?php
    }
    ?>
    <input type = 'submit' value = 'Go'>
    </form>
    
    
    <?php
    for ($i = 1; $i <= 3; $i++) {
    echo $_POST['num' . $i];
    }
    ?>
    

    【讨论】:

    • 是的,我很抱歉..当时我正在待命..对不起兄弟。
    • 酷哥们 :) 祝你有美好的一天。
    【解决方案3】:

    将表单移到 for 循环之外。您目前正在使用一个提交按钮(未附加到任何一个提交按钮)创建三个表单。

    试试这个方法

    <form action = 'test.php' method = 'post'>
    <?php
    for ($i = 1; $i <= 3; $i++) {
    ?>
        <input type="radio" name="num<?php echo $i; ?>" value="one">One<br>
        <input type="radio" name="num<?php echo $i; ?>" value="two">Two
    <?php
    }
    ?>
    
    <input type = 'submit' value = 'Go'>
    </form>
    
    <?php
    for ($i = 1; $i <= 3; $i++) {
        echo $_POST['num' . $i];
    }
    ?>
    

    【讨论】:

      【解决方案4】:

      @Cagy79 添加了额外的提交按钮.. 我已经修改了代码,

      <form action ="" method='post'>
      <?php
      for ($i = 1; $i <= 3; $i++) {
          ?>
              <input type="radio" name="num<?php echo $i; ?>" value="one">One<br>
              <input type="radio" name="num<?php echo $i; ?>" value="two">Two    
      
          <?php
      }
      ?>
      <input type = 'submit' value = 'Go'>
      </form>
      
      
      <?php
      for ($i = 1; $i <= 3; $i++) {
          echo $_POST['num' . $i];
      }
      ?>
      

      这行得通。 :)

      【讨论】:

      • 确实是我的错
      • 酷@Cagy79 :) 祝你有美好的一天。
      猜你喜欢
      • 2015-10-24
      • 2012-12-29
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 2018-10-29
      相关资源
      最近更新 更多