1

別のループですべての値を配列に追加することでこれを修正しました。助けてくれてありがとう。

$_POST['val1']変数は更新されたページに渡されますが、そう$_POST['val2']ではありません。それぞれのコードは同じで、両方とも同じフォーム内にあります。どんなアイデアでも大歓迎です。この時点で、私は本当にこれについて新鮮な目が必要だと思います.

コードのスニペットを含めているだけなので、見やすくなっています。プログラム内の他のすべてが正しく実行されており、特定のエラーは発生していません... の値$_POST['val2']が印刷されていないだけです。

$_POST変数が定義され ているコードは次のとおりです。

// foreach ($line as $col_value) ...
if ($counter == 1):
    echo "\t\t<input type='hidden' name='val1'   value='$col_value' />";
elseif ($counter == 2):
    echo "\t\t<input type='hidden' name='val2' value='$col_value' />";
endif;

それらが使用されるコードは次のとおりです。

for($i=1; $i<6; $i++) {
    echo "\t<tr>\n";
    echo "\t\t<td>";

    if($i == 1){
        echo "id";
        echo "</td>\n";
        echo "\t\t<td>" . $_POST['val1'] . "</td>\n";

    } elseif($i == 2){
        echo "name";
        echo "</td>\n";
        echo "\t\t<td>" . $_POST['val2'] . "</td>\n";
4

2 に答える 2

0

達成したいことを確認するために、2 つのフォームに分割することをお勧めします。
出力に何を表示しますか?
このコードは SELF POST のようです。
また、非表示のテキスト ボックスを通常のテキスト ボックスに変更して、コードに何が起こっているかを確認できるようにします。

  <form action=""  method="post">
  <?php
  $counter = 1; //default values are always good to have
  $col_value = 0;
  $col_value = @$_POST['val1'] ;

  if ($counter == 1)
      echo "\t\t<input  name='val1'   value='$col_value' />";
  else 
      echo "\t\t<input  name='val2' value='$col_value' />";

  //I would rather write it like this:

  $line = 1;
  $counter = 1; //give it a default value to start off with.
  $col_value = @$_POST['val1'] ;
  $col_value = 0;

  $line = array(1, 2,4);
     foreach ($line as $col_value) {
     echo "Current value of \$line: $col_value.\n";
  echo "<input  name='val1' value='$col_value' />";
  echo "<input  name='val2' value='$col_value' />";
     }

  ?>
  <input type="submit" name="submit" value="Submit" />
  <br>
  <br>
  <table>
  <?php

  $val1 = $_POST['val1'] ;
  $val2 = $_POST['val2'] ;
  echo "POSTval1: ".$val1."<br>";
  echo "POSTval2: ".$val2."<br>";

  for($i=1; $i<6; $i++) {
      echo "\t<tr>\n";
      echo "\t\t<td>";

      if($i == 1){
          echo "id";
          echo "</td>\n";
          echo "\t\t<td>" . $val1 . "</td>\n";

      } elseif($i == 2){
          echo "name";
          echo "</td>\n";
          echo "\t\t<td>" . $val2 . "</td>\n";
      }
  } //don't forget the closing brackets.
  ?>

  </table>
  </form>
于 2013-09-29T22:24:24.067 に答える
0

ここに詳細な回答があるように、私は自分の質問に答えます。

これは、私がこれをどのように解決したかの例です。このループはフォームの前に行われます:

    if($table == 'language'){                       //this cycles through query to get value of $language... but it only gets last value of language from search query
        $numRow = 0;
        //results are good so output them to HTML
        while ($line1 = pg_fetch_array($result, null, PGSQL_ASSOC)){
            $counter = 0;

            foreach ($line1 as $col_value){ // then add all data for attributes in succeeding columns
                if($counter == 1){
                    $language[$numRow] = $col_value;//array($numRow => $col_value);
                    $counter++;
                }
                else
                    $counter++;
            }
            $numRow++;
        }

そして、これは情報がフォームに追加される方法です:

        echo "\t\t<input type=\"hidden\" name=\"language\" value=\"$language[$numRow]\" />";
于 2013-10-05T16:40:38.247 に答える