0

私はphpでフォームをやっていますが、いくつか問題があります。まず、同じページに 3 つの異なるフォームを作成します。私が望むのは、1つのフォームのみが表示され、その後、答えがあれば2番目のフォームが表示されるということです。フォームの回答は同じページに表示されます。今のところ、最初のフォームが機能し、回答を得た後、2 番目のフォームに進みますが、2 番目のフォームを送信したいのですが、問題が表示されます。最初のフォームの回答を削除し、何もしません (最初のフォームのようにすべてが始まります)。問題を見つけようとしますが、解決方法がわかりません。

これが私のコードです:

<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>';
        }

    }       
    }
} 
?>  
4

2 に答える 2

0

それはあなたがそこに持っていた危険なコードです、兄弟。これは、いくつかの JavaScript で処理する場合、非常に単純なタスクです。その後、php に 1 つの投稿を作成できます。私は 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>
于 2013-07-17T03:21:53.570 に答える