2012-12-12 51 views
0

嗨,我是一個初學者PHP deveoloper,我正嘗試創建一個表單生成器。我生成的表單有一些問題。當我點擊例如「段落」按鈕時,會生成一個表單,其中包含一個文本字段和另一個按鈕。在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; 
} 
?> 

什麼我錯在這裏做什麼?

+1

我不知道你正在嘗試做的 – Ibu

+0

我想在生成的表單 –

回答

1

試試這個,它的工作原理,你已經在你的段落FO使用methods代替method rm ... 並且您還使用了錯誤的變量名submit$_POST['']它應該是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; 
      } 

?> 
0

我在這裏添加了一個隱藏輸入,這樣你可以輸入段落條件來執行代碼。

而且,你在這裏還有另外一個錯字:方法= 「郵報」方法= 「郵報」。 它現在有效!

<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; 
} 
+0

我corected它來執行的代碼,但它仍然無法正常工作 –

+0

再試一次編輯的編輯版本 – MAXIM

+0

。它的工作 – MAXIM

0

如果你想要的標題來呼應你有被點擊創建按鈕時拍攝..

你創建按鈕被命名爲「創造」所以這增加了$按鈕數組,然後寫一個處理程序 '創建' 如:

$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; 

}

+0

問題是*方法* ....你不需要在最後的S. – MAXIM