php - PHP 数组大小循环

我们需要创建一个程序,让用户 input 获得数组大小、他们的姓名和年龄(取决于用户输入的数组大小)。之后,我们需要显示数组的所有元素。

这是我的代码,但我在为另一个用户添加新元素并显示它时遇到问题。

<html>
    <head>
        <title> PHP Array </title>
    </head>

    <body>
        <form method="post" action="example.php">
            <h3> Please enter the your information: </h3>
                Array Size: <input type="text" name="arraysize"/> <br/><br>
                Name: <input type="text" name="name" /><br/><br/>
                Age: <input type="text" name="age"/> <br/><br/>

            <input type="submit" name="submit" value="Submit"/>
            <input type="reset" name="cancel" value="Cancel"/><br/><br/>

        <?php
            if(isset($_POST['submit'])){
                
                if((!empty($_POST['name'])) && (!empty($_POST['age'])) && (!empty($_POST['arraysize']))){
                
                $info = array($_POST['arraysize'], $_POST['name'], $_POST['g6ave']);
                $arraylength = count($info);

                    for ($i=0; $i<=$arraylength ; $i++) { 
                        
                        $name = $_POST['name'];
                            for ($j=1; $j<=$i; $j++){
                                echo "User's Name" .$i. ": " .$name. [$j] ."<br>";

                        $age = $_POST['age'];
                            for($k=0; $k<=$i; $k++){
                                echo "User's Age: " .$age. [$k] ."<br/>";
                            }
                        }
                    }
                }
            }
        ?>
    </body>
</html>

回答1

下面的一种方法(其他可能的方法)应该给你主要的想法。我还评论了每个脚本部分的目的。

下面的方法假定您将为所有表单页面使用相同的 URL。 (第 1、第 2 和成功页面)

我希望这有帮助。

session_start(); //Start new or resume existing session

if (isset($_SESSION['form_success']) && $_SESSION['form_success'] === true)
{
    require 'success_page.php';
    unset($_SESSION['form_success']); // don't needed anymore
    return; //not to continue to execute the code
}

// decide the page from user
if (isset($_POST['page']))
{
    $page = $_POST['page'];
}
else
{
    // display the first form page for the 1st time
    require 'first_page_form.php';
    return; //not to continue to execute the code
}

// if the first page was submitted.
if ($page === 'first') // or a specific POST flag from 1st page
{
    //verify data from first page
    $warnings = [];
    if (first_page_data_valid() === true) 
    {
        require 'second_page_form.php';
        return; //not to continue to execute the code       
    }
    // populate $warnings during first_page_data_valid()
    //if first page data are invalid
    print_r($warnings);
    require 'first_page_form.php'; //display again
    return; //not to continue to execute the code   
}

// if the second page was submitted.
if ($page === 'second') // or a specific POST flag from 2nd page
{
    //verify data from second page
    $warnings = [];
    if (second_page_data_valid() === true) // populate $warnings during second_page_data_valid()
    {
        // do things. ex: DB operations.
        if (db_actions_success() === true)
        {
            $_SESSION['form_success'] = true; // defined and set to true.
            // PHP permanent URL redirection. usage of 301 is important.
            // it clears POST content. Prevents F5/refresh.
            header("Location: https://www.url.com/form.php", true, 301);
            exit; // good/recommended to use after redirect     
        }
        else
        {
            echo 'System down or I have a bug. Try again later.';
            return; //not to continue to execute the code   
        }
    }
    
    //if second page data is invalid
    print_r($warnings);
    require 'second_page_form.php'; //display again
    return; //not to continue to execute the code   
}

相似文章

随机推荐

最新文章