首页 > 解决方案 > 显示 HTML 表单数据时 PHP 中的数组到字符串转换警告

问题描述

我得到了一个用 PHP 制作“每日任务管理器”的任务,这需要一个月、一天、一年和任务作为用户输入来完成。因此,为此,我使用数组来显示输入的任务,但它显示的是数组到字符串的警告。那么有什么想法可以解决我的错误吗?

每天的任务。显示当天的视图,显示一天中的每个小时(从 0:00 到 23:00)。表单输入应包括

HTML 文件

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Daily Task</title>
    <style>
        .a{
            display: block;
            box-sizing: border-box;
        }
    </style>
</head>

<body>
    <form action="dailyTask.php" method="POST">
        <label for="month">Month: </label>
        <input type="text" name="month" placeholder="month" class="a"><br>
        <label for="day">Day: </label>
        <input type="text" name="day" placeholder="day" class="a"><br>
        <label for="year">Year: </label>
        <input type="number" name="year" placeholder="year" class="a"><br>
        <label for="00:00">00:00</label>
        <input type="text" name="task1[]" placeholder="enter your task"><br>
        <label for="01:00">01:00</label>
        <input type="text" name="task2[]" placeholder="enter your task"><br>
        <label for="02:00">02:00</label>
        <input type="text" name="task3[]" placeholder="enter your task"><br>
        <label for="03:00">03:00</label>
        <input type="text" name="task4[]" placeholder="enter your task"><br>
        <label for="04:00">04:00</label>
        <input type="text" name="task5[]" placeholder="enter your task"><br>
        <label for="05:00">05:00</label>
        <input type="text" name="task6[]" placeholder="enter your task"><br>
        <label for="06:00">06:00</label>
        <input type="text" name="task7[]" placeholder="enter your task"><br>
        <label for="07:00">07:00</label>
        <input type="text" name="task8[]" placeholder="enter your task"><br>
        <label for="08:00">08:00</label>
        <input type="text" name="task9[]" placeholder="enter your task"><br>
        <label for="09:00">09:00</label>
        <input type="text" name="task10[]" placeholder="enter your task"><br>
        <label for="10:00">10:00</label>
        <input type="text" name="task11[]" placeholder="enter your task"><br>
        <label for="11:00">11:00</label>
        <input type="text" name="task12[]" placeholder="enter your task"><br>    
        <label for="12:00">12:00</label>
        <input type="text" name="task13[]" placeholder="enter your task"><br>
        <label for="13:00">13:00</label>
        <input type="text" name="task14[]" placeholder="enter your task"><br>
        <label for="14:00">14:00</label>
        <input type="text" name="task15[]" placeholder="enter your task"><br>
        <label for="15:00">15:00</label>
        <input type="text" name="task16[]" placeholder="enter your task"><br>
        <label for="16:00">16:00</label>
        <input type="text" name="task17[]" placeholder="enter your task"><br>
        <label for="17:00">17:00</label>
        <input type="text" name="task18[]" placeholder="enter your task"><br>
        <label for="18:00">18:00</label>
        <input type="text" name="task19[]" placeholder="enter your task"><br>
        <label for="19:00">19:00</label>
        <input type="text" name="task20[]" placeholder="enter your task"><br>
        <label for="20:00">20:00</label>
        <input type="text" name="task21[]" placeholder="enter your task"><br>
        <label for="21:00">21:00</label>
        <input type="text" name="task22[]" placeholder="enter your task"><br>
        <label for="22:00">22:00</label>
        <input type="text" name="task23[]" placeholder="enter your task"><br>
        <label for="23:00">23:00</label>
        <input type="text" name="task24[]" placeholder="enter your task"><br><br>
        <input type="submit" />
    </form>
</body>

</html>

PHP 文件

<?php
    $month = filter_input(INPUT_POST, "month", FILTER_SANITIZE_SPECIAL_CHARS);
    $day = filter_input(INPUT_POST, "day", FILTER_SANITIZE_SPECIAL_CHARS);
    $year = filter_input(INPUT_POST, "year", FILTER_VALIDATE_INT);
    $task1 = $_POST["task1"];
    $task2 = $_POST["task2"];
    $task3 = $_POST["task3"];
    $task4 = $_POST["task4"];
    $task5 = $_POST["task5"];
    $task6 = $_POST["task6"];
    $task7 = $_POST["task7"];
    $task8 = $_POST["task8"];
    $task9 = $_POST["task9"];
    $task10 = $_POST["task10"];
    $task11 = $_POST["task11"];
    $task12 = $_POST["task12"];
    $task13 = $_POST["task13"];
    $task14 = $_POST["task14"];
    $task15 = $_POST["task15"];
    $task16 = $_POST["task16"];
    $task17 = $_POST["task17"];
    $task18 = $_POST["task18"];
    $task19 = $_POST["task19"];
    $task20 = $_POST["task20"];
    $task21 = $_POST["task21"];
    $task22 = $_POST["task22"];
    $task23 = $_POST["task23"];
    $task24 = $_POST["task24"];
    $myArray = Array($task1, $task2, $task3, $task4, $task5, $task6, $task7, $task8, $task9, $task10, $task11, $task12, $task13, $task14, $task15, $task16, $task17, $task18, $task19, $task20, $task21, $task22, $task23, $task24);
    foreach( $myArray as $task ) {
        echo $task . "\n";
    }
?>
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Your Schedule</title>
</head>

<body>
    <p>Month: <?= $month ?></p>
    <p>Day: <?= $day ?></p>
    <p>Year: <?= $year ?></p>
</body>

</html>

标签: phphtml

解决方案


在这里因为你命名 taskx[] 你的输入它创建一个数组,然后 $taskx 也是一个数组,所以 $myArray 是一个数组数组,最后当你尝试在循环中回显每个时,它与字符串有点不同,所以 php指出来。

您可以使用 [] 多次给出相同的名称,它将创建一个包含所有值的漂亮数组,这次这些值将是字符串。


推荐阅读