2013-07-17 61 views
0

我在做php中的表格,但我遇到了一些問題。 首先,我會在同一頁面中顯示3種不同的表格。 我想要的只有1個表單出現,然後用答案出現第二個表單等等。 表單的答案將顯示在同一頁面上。 現在我的第一個表單工作和得到答案後去第二個表格,但我想提交第二個表格問題出現。 它刪除我的第一個表單的答案,不做任何事情(所有事情都以我的第一種形式開始)。 我試圖找到問題,但不知道如何解決它。PHP在同一頁中的多個表

這裏是我的代碼:

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
    Q1? 
    <input type="number" name="nbtemplate" min="1" max="30"> 
    <input type="submit" name="submitbutton1" value="Confirm!"> 
</form> 

<?php 
if(!isset($submitbutton1)) { 
    if (!empty($_POST['nbtemplate']) != "") { 
     echo "<b>{$_POST['nbtemplate']}</b> !\n"; 
     echo "<br />"; 
     $Nnbtemplate = $_POST['nbtemplate']; 
     $result = mysql_query("UPDATE tb SET day='$Nnbtemplate'") or die(mysql_error()); 
?> 

<form action='<?php echo $_SERVER['PHP_SELF'];?>' method='post'> 
Q2? <br>    
<?php 
    for ($i = 1; $i <= $Nnbtemplate; $i++) { // start loop 
     echo "Template "; 
     echo $i; 
?>  

<input type="number" name="nbtime" min="1" max="96"> 

<?php 
} 
    echo '<input type="submit" name="submitbutton2" value="Confirm!">'; 
    echo '</form>'; 

    if(isset($submitbutton1) && !isset($submitbutton2)) { 
    if (!empty($_POST['nbtime']) != "") { 
    echo "<b>{$_POST['nbtime']}</b> !\n"; 
    echo "<br />"; 
    $nbtime = $_POST['nbtime']; 

    for ($j = 1; $j <= $nbtime; $j++) { 
    echo "Time"; 
    echo $j; 
?> 
    Q3: 
    <input type="time" name="starttime"> To <input type="time" name="endtime"> 

<?php 
    } 
    echo '<input type="submit">'; 
    echo '</form>'; 
     } 

    }  
    } 
} 
?> 
+1

這就是你得到的一些難看的代碼 –

+1

重寫你的代碼! – goseo

+0

你應該在關閉php標籤之前關閉'''''' –

回答

0

也就是說你到了那裏,哥哥一些粗糙的代碼。這是一個非常簡單的任務,當處理一些JavaScript。然後你可以有一個單一的職位到你的PHP。我喜歡用jQuery框架所以這裏有幾個鏈接,我發現快:this onethis one

示例代碼響應關於動態生成表單元素評論:

<html> 
<head> 
    <!-- load jquery library --> 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
</head> 
<body> 

<form action="toyourpage.php"> 

    How Many?: 
    <input type="text" name="number" id="number"> 
    <div id="add"></div> 

</form> 

<!-- javascript go --> 
<script type="text/javascript"> 

$(document).ready(function() 
{ 
    $('input#number').keyup(function() 
    { 
     var num = $(this).val(); // get num 

     if(!isNaN(num)) // check if number 
     { 
      $('div#add').html(''); // empty 
      for(i = 1; i <= num; i++) // add 
      { 
       $('div#add').append('New Field ' + i + ': <input type="text" name="next_' + i + '" id="next' + i + '"><br>'); 
       } 
     } 
     else 
     { 
      alert('Valid number required'); 
     } 

    }); 
}); 

</script> 

</body> 
</html> 
+0

感謝它看起來像我想要的,我只有一個問題。是否有可能採取第一步的價值(如問一個數字),並在第二步,重複表單的次數與第一步一樣多? – usertfwr

+0

當然。我會在我的答案中添加一個例子。 – NinthCrow

0

我做你的代碼的一些變化,已經測試,它的工作原理。

您在{}括號和if條件中有任何錯誤。另外,正如我評論我加入extract($_POST)

<?php 
extract ($_POST); 
if (! isset ($submitbutton1) && !isset($submitbutton2)) { 
    ?> 
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
    Q1? <input type="number" name="nbtemplate" min="1" max="30"> <input 
     type="submit" name="submitbutton1" value="Confirm!"> 
</form> 
<?php ; 
} 
if (isset ($submitbutton1)) { 
    if (! empty ($_POST ['nbtemplate']) != "") { 
     echo "<b>{$_POST['nbtemplate']}</b> !\n"; 
     echo "<br />"; 
     $Nnbtemplate = $_POST ['nbtemplate']; 
     $result = mysql_query("UPDATE tb SET day='$Nnbtemplate'") or 
     die(mysql_error()); 
     ?> 
<form action='<?php echo $_SERVER['PHP_SELF'];?>' method='post'> 
    Q2? <br>    
<?php 
     for($i = 1; $i <= $Nnbtemplate; $i ++) { // start loop 
      echo "Template "; 
      echo $i; 
      ?>  
<input type="number" name="nbtime" min="1" max="96"> 
<?php 
     } 
     echo '<input type="submit" name="submitbutton2" value="Confirm!">'; 
     echo '</form>'; 
    } 
} 
     if (isset ($submitbutton2)) { 
      if (! empty ($_POST ['nbtime']) != "") { 
       echo "<b>{$_POST['nbtime']}</b> !\n"; 
       echo "<br />"; 
       $nbtime = $_POST ['nbtime']; 
       for($j = 1; $j <= $nbtime; $j ++) { 
        echo "Time"; 
        echo $j; 
        ?> 
    Q3: 
    <input type="time" name="starttime"> To <input type="time" 
     name="endtime"> 

<?php 
       } 
       echo '<input type="submit">'; 
       echo '</form>'; 
      } 

     } 
?>