php内的textarea回显html不能正确发布值

时间:2018-09-27 08:43:30

标签: javascript php html

我有一个文件,其中包含3个不同的页面,这些页面会在不同的情况下加载,这基本上意味着该页面中的所有html都位于PHP标记内,并且会单独回显,它们是按以下方式加载的:

if ($page == 2) {
    global $wbdb;
    print_r($_SESSION['order']);
    print_r($_SESSION['order']);
    if($wpdb->last_error !== ''){
      $wpdb->print_error();
  }

我在最后一页中有一个文本区域,我想在变量的文本区域内发布值,以后可以使用它将其发布到数据库中,如下所示:

  <textarea id="comments" name="comments" cols="30" rows="4" placeholder="Kirjoita tähän:">' . $comments = $_POST['comments'] .
            $_SESSION['commentone'] = $_POST['comments'] . $comments; echo '</textarea>';

这里的问题是,没有明显的原因,无论试图在textarea本身内添加什么内容,它都将始终发布null,页面内的所有其他内容都很好,但是textarea根本不起作用。询问是否不清楚。

根据要求,以下是完整的页面代码:

if ($page == 2) {
    global $wbdb;
    print_r($_SESSION['order']);
    print_r($_SESSION['order']);
    if($wpdb->last_error !== ''){
      $wpdb->print_error();
  }
    echo '
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset ="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
    @media only screen and (min-width: 1600px) {
      * {
        margin: 0;
        padding: 0;
      }

      html, body {
        height: 100%;
      }

      .Etusivu {
        width: 100%;
        height: 100%;
      }

      .margin {
        margin-bottom: 5%;
      }

      input[type=submit] {
        background-color: #cea525;
        color: white;
        padding: 1%;
        margin-right: 5%;
        float: right;
      }

      .important {
        text-decoration: underline;
        font-weight: bold;
      }
    }

    @media only screen and (max-width: 400px) {
      .margin {
        margin-bottom: 5%;
      }

      input[type=submit] {
        background-color: #cea525;
        color: white;
        padding: 1%;
      }

      .important {
        text-decoration: underline;
        font-weight: bold;
      }

      textarea {
        border: 1px solid black;
        width: 95%;
        resize: none;
      }
    }
    </style>
    </head>
    <body>
    <div class="Etusivu">
        <form action="" method="post" style="border:0px solid #ccc">
            <fieldset><legend><b>Tuotteiden palautus</b></legend>
              <div class="step">
            <legend>Askel 3/3</legend>
          </div>
          <br />
              <p class="important">Palautuksen varmistus</p>
              <br />
              <div class="valitse">
            <p class="important">Haluatko varmasti palauttaa seuraavat tuotteet?</p>
          </div>
            <hr>';
            $test = $_POST['productinfo'];
            $total2 = 0;
            for($i=0; $i < sizeof($test); $i++) {
            list($name, $quantity, $total) = explode("|", $test[$i]);
            echo "Nimi: ".$name;
            echo "<br>";
            echo "Määrä: ".$quantity;
            echo "<br>";
            echo "Hinta: ".$total . "€";
            echo "<br>";
            echo "<br/>";
            $total2 += $total;
}

            $_SESSION['product'] = $name;

            echo '
            <br />
            <br />
            <h4>Kirjoita alas, miksi haluat palauttaa tuotteen/tuotteet?</h4>
            <textarea id="comments" name="comments" cols="30" rows="4" placeholder="Kirjoita tähän:">' . $comments = $_POST['comments'] .
            $_SESSION['commentone'] = $_POST['comments'] . $comments; echo '</textarea>';
            echo'

            <div class="refundprice">' .
            '<label>Palautettavien tuotteiden yhteishinta: ' . $total2 . '€' . '</label>
          </div>
            <div class="clearfix">
              <input type="hidden" name="page" value="3">
              <input type="submit" class="signupbtn" name="sendrqst" value="Lähetä">
          </div>
        </fieldset>
        </form>
    </div>
    </body>
    </html>';
    var_dump($comments);
  }

  echo "<a href='index.php'>Paina tästä päästäksesi takaisin etusivulle!</a>";
  if($wpdb->last_error !== ''){
    $wpdb->print_error();
}

2 个答案:

答案 0 :(得分:0)

it seems to me you are only echoing '</textarea>', no? 
$comments = $_POST['comments'];
$_SESSION['commentone'] = $_POST['comments'];
echo '<textarea id="comments" name="comments" cols="30" rows="4" placeholder="Kirjoita tähän:">' . $comments .'</textarea>';

答案 1 :(得分:0)

您必须在文本区域之外定义变量,如:

$comments = $_SESSION['commentone'] = $_POST['comments'];

echo '<textarea id="comments" name="comments" cols="30" rows="4" placeholder="Kirjoita tähän:">' . $comments . '</textarea>';