在foreach循环中回显PHP变量

时间:2017-09-23 16:07:35

标签: php

我的主页设置如下。它有2个文本框和一个复选框列表,这些复选框是从文本文件中填充的(我不使用db作为一个简单的表单)。我的问题是我无法在复选框中发布值并回显它们

    <!DOCTYPE HTML>
<html>
<body>
    <?php
        $CN = $Assignee ="";
    ?>

<form action="GPParser1.php" method="post">
<table>
  <tr>
    <td>CName:</td>
    <td><input type="text" name="CN"></td>
  </tr>

  <tr>
    <td>Assignee:</td>
    <td><input type="text" name="Assignee" ></td>
  <tr>

  <tr>
    <td>Select Vendors:</td>
</tr>
    <td>
      <?php

      $gp = file('GP.txt');

      foreach ($gp as $line_num => $gp)
        {
          //echo '<input type="checkbox" name= $line value=$line>($line)."<br />\n";
        print "
                        <br/>
                        <input type='checkbox' name='" . $gp . "' value='" . $gp . "'>$gp";
        };

      ?>
    </td>
  </tr>

  <tr>
    <td></td>
    <td>
      <input type="submit">
    </td>


 <?php

 echo $CasinoName;
 echo $Assignee;

 //foreach ($gp as $ln => $gp) {
//  echo $gp;
 //};
?>
</body>
<html>

<!DOCTYPE HTML>
<html>
<body>
  <?php

    $CN = $_POST["CN"];
    $Assignee = $_POST["Assignee"];
    $GPS = $_POST ["$gp"];

 echo $CN;
 echo $Assignee;
 foreach ($GPS as $GPss => $GPS)
 {
   echo "$GPS";
 }

 //foreach ($gp as $ln => $gp) {
//  echo $gp;
 //};
?>
</body>
<html>

就像现在一样,我在$ GPS = $ _POST [&#34; $ gp&#34;];

的基础上得到了几个错误

我该怎么办?

2 个答案:

答案 0 :(得分:0)

在这两个脚本中,您将覆盖foreach循环中的变量

foreach ($gp as $line_num => $gp)
//                     this  ^^^
//       ^^^ overwrites this

foreach ($GPS as $GPss => $GPS)
//                  this  ^^^
//       ^^^ overwrites this

因为您在as

的两侧使用相同的变量名称

而是使用另一个像这样的名称

foreach ($gp as $line_num => $gpx)

通常的做法是使用复数名称$items命名包含数组的数组变量,并将单数变量命名为

foreach ($gps as $line_num => $gp)

答案 1 :(得分:0)

如果我错了,我不确定这是否是您正在寻找的解决方案,请告诉我,以便我能给出更好的答案。

我的解决方案是,您的表单将有一个复选框列表,该列表稍后将在提交表单时成为值数组。

&#13;
&#13;
<!DOCTYPE HTML>
<html>

<body>
  <?php
        $CN = $Assignee ="";
    ?>

    <form action="GPParser1.php" method="post">
      <table>
        <tr>
          <td>CName:</td>
          <td><input type="text" name="CN"></td>
        </tr>

        <tr>
          <td>Assignee:</td>
          <td><input type="text" name="Assignee"></td>
          <tr>

            <tr>
              <td>Select Vendors:</td>
            </tr>
            <td>
              <?php

      $gp = file('GP.txt');

      foreach ($gp as $line_num => $gp) { ?>
                <p><input type="checkbox" name="gp[]" value="<?php echo $gp; ?>">
                  <?php echo $gp; ?>
                </p>
                <?php }; ?>
            </td>
          </tr>

          <tr>
            <td></td>
            <td>
              <input type="submit">
            </td>
           </tr>
</body>
</html>
&#13;
&#13;
&#13;

&#13;
&#13;
<!DOCTYPE HTML>
<html>

<body>
  <?php

    $CN = $_POST["CN"];
    $Assignee = $_POST["Assignee"];
    $GPS = $_POST["gp"];

 echo $CN;
 echo $Assignee;
 foreach ($GPS as $GPss => $GPS)
 {
   echo "$GPS";
 }

 //foreach ($gp as $ln => $gp) {
//  echo $gp;
 //};
?>
</body>
<html>
&#13;
&#13;
&#13;