使用php在同一页面上发布用户输入的表单

时间:2016-10-11 06:38:14

标签: php

我是PHP的新手,所以我需要一些项目帮助。

我在页面上有一个用户写入其内容和名称的表单,如下所示:

<div class="white shadow padding-10 margin-bottom">
 <form class="form xl relative" method="POST" action="
 <?php  echo $_SERVER['PHP_SELF']; ?>
 ">
   <div class="col-1 col-persist -margin">
     <img class="pull-left width-100 round" src="images/logo.gif" alt = "logo"/>
   </div>
   <div class="col-9 col-persist gutter-h-10 padding-top-5 -margin">
     <textarea  placeholder="What is new?" name="content"></textarea>
     <input type="text" name="name" placeholder="What is your name?">
   </div>
   <div class="col-2 col-persist -margin">
     <input type="button" name="submit" value="Send">
   </div>
 </form>
</div>

PHP_SELF我用来留在同一页面

在php部分我有这个:

$userName = "";
$userInput = "";
if($_SERVER["REQUEST_METHOD"] === "POST"){
  $userName = $_POST['name'];
  $userInput = $_POST["content"];
}

  if(isset($_POST)){
   echo '<div class="white shadow padding-10 margin-bottom">';
   echo '<form class="form xl relative" method="POST">';
   echo '<div class="col-1 col-persist -margin">';
   echo '<img class="pull-left width-100 round" src="images/logo.gif" alt = "logo"/>';
   echo '</div>';
   echo '<div class="col-9 col-persist gutter-h-10 padding-top-5 -margin">';
   echo '<textarea  placeholder="What's new?" name="content">'.$userInput.'</textarea>';
   echo '</div>';
   echo '<input type="text" name="name" placeholder="What's your name?">'.$userName;
   echo '</div>';
   echo '</form>';
   echo '</div>';
  }

但是,此代码根本不起作用。在调试时,浏览器在这些行中显示了一些问题:

echo '<textarea  placeholder="What's new?" name="content">'.$userInput.'</textarea>';
echo '</div>';
echo '<input type="text" name="name" placeholder="What's your name?">'.$userName;

有什么问题?我想这是语法上的东西,但在代码逻辑本身可能更多? 在此先感谢!!!

2 个答案:

答案 0 :(得分:0)

您需要在html而不是按钮中更改<input type='submit' name='submit' value='send'>

答案 1 :(得分:0)

首先,您的表单需要提交按钮,因此请将<input type="button" name="submit" value="Send">更改为<input type="submit" name="submit" value="Send">

此外,您无需使用PHP_SELF,只需将动作属性保留为action=""即可将其保留在同一页面上。

至于php中的错误,你有单引号标记没有被转义。这应该有效:

echo '<textarea  placeholder="What\'s new?" name="content">'.$userInput.'</textarea>';
echo '</div>';
echo '<input type="text" name="name" placeholder="What\'s your name?">'.$userName;