$ _POST没有被阅读

inp*_*put 2 html php

我有一个表格,将书籍信息插入数据库.但是它没有读取$ _POST属性.

book.php中:

  <form action="books_manage.php" id="addbook_form" method="post">

     <div id="ab_wrapper">

         <div id="ab_leftcolumn">
                 <div id="bookinfo">
                 <fieldset>
                     <legend>Book Details</legend>
                         <div class="field">
                             <label>Book ID</label>
                             <input type="text" name="bid" id="bid"/>
                         </div>
                         <div class="field">
                             <label>Name</label>
                             <input type="text" name="bname" id="bname"/>
                         </div>
                          <div class="field">
                             <label>Author</label>
                             <input type="text" name="bauthor" id="bauthor"/>
                         </div>
                          <div class="field">
                             <label>Info</label>
                             <textarea name="binfo" id="binfo" cols="5" rows="5" ></textarea>
                         </div>
                         <div class="field">
                             <label>Date Added</label>
                             <input type="text" value="<?php echo date('D d M Y')?>" name="bdateadd" id="bdateadd"/>
                         </div>
                         <div class="field">
                             <label>Date Updated</label>
                             <input type="text" value="<?php echo date("D d M Y")?>" name="bdateupd" id="bdateupd"/>
                         </div>
                        <div>
                         <input type="hidden" name="action" value="save">
                         <input type="submit" value="Save">
                         <input type="button" id="addcontent" value="Add Content">
                         <input type="reset" value="Reset">
                        </div>
                 </fieldset>
                 </div>
         </div>

         <div id="ab_rightcolumn">
                <div id="bookcontents">
                <fieldset>
                     <legend>Book Content</legend>
                         <div class="field">
                             <label>Chapter</label>
                             <input type="text" id="bchapter" name="bchapter"/>
                         </div>
                         <div class="field">
                             <label>Sub-Chapter</label>
                             <input type="text" id="bsubchapter" name="bsubchapter"/>
                         </div>
                          <div class="field">
                             <label>Content</label>
                             <textarea id="bcontent" name="bcontent" rows="6" cols="8"></textarea>
                         </div>
                      <br />
                         <div>
                         <input type="hidden" name="action" value="addnext">
                         <input type="submit" value="Save and Add Next Chapter">
                         <input type="submit" name="action" value="Done">
                      </div>

                 </fieldset>
             </div>

         </div>

     </div>



  </form>
Run Code Online (Sandbox Code Playgroud)

books_manage.php:

<?php
  if (isset($_POST['action']) && $_POST['action'] == 'save')
    {
         echo "You clicked the save button";
    }
  else {
    echo "Hello. The date is " .  date("D d M Y") ;

  }

?>
Run Code Online (Sandbox Code Playgroud)

输出:

Hello. The date is Thu 08 Jul 2010
Run Code Online (Sandbox Code Playgroud)

它似乎没有读取隐藏按钮的值.它应显示"您单击了保存按钮".我错过了什么吗?

Dol*_*lph 6

首先,具有相同属性的多个<input>s 不会让您获得您正在寻找的行为.<form>name

相反,您需要为提交按钮提供一个名称,然后您可以检查按下了哪个按钮:

<input type="submit" name="save" value="Add Content">
<input type="submit" name="done" value="No more content">

<?php
if(isset($_POST['save'])) {
    echo "saved";
} else if(isset($_POST['done'])) {
    echo "done";
}
?>
Run Code Online (Sandbox Code Playgroud)

请参阅Lèsemajesté下面的评论,了解HTML工作组如何解决这个问题.

  • +1表示处理"多动作"表单的最佳方法. (4认同)