【问题标题】:Form generator in phpphp中的表单生成器
【发布时间】:2012-12-13 02:43:16
【问题描述】:

您好,我是一名初级 PHP 开发人员,我正在尝试创建一个表单生成器。生成的表单存在一些问题。例如,当我单击“段落”按钮时,会生成一个包含文本字段的表单,并且另一个按钮。

当我在生成的代码中输入一些文本并按下按钮执行某些功能时,我想打印文本。

这是我的代码:

<form action="" method="post">
   <button type="submit" name ="Paragraph">Paragraph Text</button>
   <button type="submit" name ="MultipleChoice">Multiple Choice</button>
   <button type="submit" name ="Name">Name</button>
   <button type="submit" name ="Adress">Address</button>
   <button type="submit" name ="Number">Number</button>
   <button type="submit" name ="CheckBoxes">Checkboxes</button>
   <button type="submit" name ="DropDown">Drop Down</button>
   <button type="submit" name ="Phone">Phone</button>
   <button type="submit" name ="Email">Email</button>
</form>

<?php 
   require_once 'addform.php';
   $buttons = array('Paragraph', 'MultipleChoice', 'Name', 
              'Adress', 'Number', 'CheckBoxes', 'DropDown', 'Phone', 'Email');
   foreach ($buttons as $button){
     if(isset($_POST[$button])){
        $title;
        $input;
        if($button == 'Paragraph'){
           ?>
           <form action="" methods="post">
             Paragraph title: <input type="text" name="title"/>
             <input type="submit" value="Create" name="create"/>
           </form>
           <?php
           if(isset($_POST['title'])){
             $title = $_POST['title'];
             echo $title;
           }
        }
     }
     break;
}
?>

我在这里做错了什么?

【问题讨论】:

  • 我不确定你在这里要做什么
  • 我正在尝试执行生成表单中的代码

标签: php


【解决方案1】:

试试这个,它有效,你在段落形式中使用了methods 而不是method... 而且你在$_POST['']中使用了错误的变量名submit,它应该是isset($_POST['create'])

 <form action="" method="post">
   <button type="submit" name ="Paragraph">Paragraph Text</button>
   <button type="submit" name ="MultipleChoice">Multiple Choice</button>
   <button type="submit" name ="Name">Name</button>
   <button type="submit" name ="Adress">Address</button>
   <button type="submit" name ="Number">Number</button>
   <button type="submit" name ="CheckBoxes">Checkboxes</button>
   <button type="submit" name ="DropDown">Drop Down</button>
   <button type="submit" name ="Phone">Phone</button>
   <button type="submit" name ="Email">Email</button>
</form>

<?php 

   $buttons = array('Paragraph', 'MultipleChoice', 'Name', 
              'Adress', 'Number', 'CheckBoxes', 'DropDown', 'Phone', 'Email');
   foreach ($buttons as $button){
     if(isset($_POST[$button])){
        $title;
        $input;
        if($button == 'Paragraph'){
           ?>
           <form action="" method="post">
             Paragraph title: <input type="text" name="title"/>
             <input type="submit" value="Create" name="create"/>
           </form>
           <?php

        }
     }
     break;
}
     if(isset($_POST['create'])){

             $title = $_POST['title'];
             echo $title;
           }

?>

【讨论】:

    【解决方案2】:

    如果您希望标题回显,则必须在单击创建按钮时捕获..

    您的创建按钮名为“create”,因此将其添加到 $buttons 数组中,然后为“create”编写一个处理程序,例如:

    $buttons = array('create', 'Paragraph', 'MultipleChoice', 'Name', 
              'Adress', 'Number', 'CheckBoxes', 'DropDown', 'Phone', 'Email');
    foreach ($buttons as $button){
     if(isset($_POST[$button])){
        $title;
        $input;
        if($button == 'Paragraph'){
           ?>
           <form action="" methods="post">
             Paragraph title: <input type="text" name="title"/>
             <input type="submit" value="Create" name="create"/>
           </form>
           <?php
        }elseif($button=='create' && isset($_POST['title'])){
           $title = $_POST['title'];
           echo $title;
        }
     }
     break;
    

    }

    【讨论】:

      【解决方案3】:

      我这里加了一个hiddent输入,这样你就可以输入Paragraph条件来执行代码了。

      另外,您这里还有一个错字:methodS="post"method="post"。 现在可以了!

      <form action="" method="post">
         <button type="submit" name ="Paragraph">Paragraph Text</button>
         <button type="submit" name ="MultipleChoice">Multiple Choice</button>
         <button type="submit" name ="Name">Name</button>
         <button type="submit" name ="Adress">Address</button>
         <button type="submit" name ="Number">Number</button>
         <button type="submit" name ="CheckBoxes">Checkboxes</button>
         <button type="submit" name ="DropDown">Drop Down</button>
         <button type="submit" name ="Phone">Phone</button>
         <button type="submit" name ="Email">Email</button>
      </form>
      
      <?php 
         require_once 'addform.php';
         $buttons = array('Paragraph', 'MultipleChoice', 'Name', 
                'Adress', 'Number', 'CheckBoxes', 'DropDown', 'Phone', 'Email');
      foreach ($buttons as $button){
       if(isset($_POST[$button])){
          $title;
          $input;
          if($button == 'Paragraph'){
             ?>
             <form action="" methods="post">
               Paragraph title: <input type="text" name="title"/>
               <input type="hidden" value="set" name="Paragraph"/>
               <input type="submit" value="Create" name="create"/>
             </form>
             <?php
             if(isset($_POST['title'])){
               $title = $_POST['title'];
               echo $title;
             }
          }
       }
       break;
      }
      

      【讨论】:

        猜你喜欢
        • 2010-11-21
        • 2011-03-01
        • 2016-03-07
        • 1970-01-01
        • 2020-07-05
        • 1970-01-01
        • 2010-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多