php - 显示 HTML 表单数据时 PHP 中的数组到字符串转换警告
问题描述
我得到了一个用 PHP 制作“每日任务管理器”的任务,这需要一个月、一天、一年和任务作为用户输入来完成。因此,为此,我使用数组来显示输入的任务,但它显示的是数组到字符串的警告。那么有什么想法可以解决我的错误吗?
每天的任务。显示当天的视图,显示一天中的每个小时(从 0:00 到 23:00)。表单输入应包括
- 一个月、一天和一年
- 当天要完成5个任务。每个任务都有一个描述(文本)和与之相关的截止日期(例如 10:00、14: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>
解决方案
在这里因为你命名 taskx[] 你的输入它创建一个数组,然后 $taskx 也是一个数组,所以 $myArray 是一个数组数组,最后当你尝试在循环中回显每个时,它与字符串有点不同,所以 php指出来。
您可以使用 [] 多次给出相同的名称,它将创建一个包含所有值的漂亮数组,这次这些值将是字符串。
推荐阅读
- postgresql - Postgres 导入数据优化
- visual-studio-code - 如何在 VS Code(或其他文本编辑器)中显示和写入所有不同的空格和控制字符
- android - 意图启动错误的活动,我该如何解决?
- android - 使用SlidingActivity时是否可以编辑父Activity的内容
- listview - 渲染后调用的函数反应原生
- jquery - 使用jquery提交表单后奇怪的事情
- java - ActionListener 中的静态变量
- android - 这是使用 Retrofit 2 设置基本身份验证的正确方法吗?
- c++ - 已定义的构造函数和函数上的未定义符号,为什么?
- c# - dotnet/c# 的 Spring Cloud 配置客户端