php - 从动态表单提交值,使用数组
问题描述
我一直在尝试创建一个动态的待办事项模板列表,其中包含预先分配的项目、描述等。这个想法是从一个会不时更改的表中提取一个模板列表。从那里,用户将从模板任务列表中取消选中他们不需要插入到另一个列表或“表”中的待办事项。
| 示例 |
TaskName = "做作业" TaskDescription = "在家做功课" AssignedTo = "Greg"
TaskName =“锻炼”TaskDescription =“去健身房”AsssignedTo =“Greg”
如果上述任务未选中,则将以下行插入“todos”表中,但未选中的行除外。
INSERT INTO todos (todo_name, todo_description,todo_assigned) Values (:taskname,:taskdecription, :taskassigned)
我努力了
<input type="checkbox" value=task[taskname][taskdesc] checked>
我的代码开始。
<?php
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT * FROM plan_list');
$stmt->execute();$count = $stmt->rowCount();
?>
<form method="post" action="insert_list_tasks.php">
拉取模板列表
<?
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$name= $row['plan_name']
$desc= $row['plan_desc']
$assigned= $row['plan_assigned']
echo "<input type='checkbox'value='task[".$name."][".$desc."][".$assigned."]' name='id[]'checked>".$name."<br>";
}
?>
<button>Add List To My ToDOs</button>
</form>
不确定我是否正确地执行了值数组。这就是我卡住的地方,将任务插入到 TODOs 表中。
<?php
$stmt_insert = $conn->prepare("INSERT INTO todos
(todo_name, todo_assigned) Values (:plan_name, :plan_assigned)");
$stmt_insert->bindParam(':plan_name', $plan_name);
$stmt_insert->bindParam(':plan_assigned', $plan_assigned);
$stmt_insert->execute();
?>
我希望从同一个复选框输入中获取多个值,但到目前为止我只能得到 1,或者它只是回显“数组”。在这一点上,我觉得自己很愚蠢。
对此的任何帮助将不胜感激。谢谢!
解决方案
我最终得到了与此类似的代码。
$todo_toaddornot = $_POST['toaddornot'];
$value1 =$_POST['value1'];
$value2 =$_POST['value2'];
for($i=0;$i<count($todo_name);$i++)
{ //If Mark Yes Then Show
if($todo_toaddornot[$i]==='Yes')
{ echo $value1[$i]; echo $value2[$i]; }}
推荐阅读
- security - 覆盖c中main的返回地址
- php - 在 MySQL 查询中使用 PHP 变量
- c# - C# excel 互操作进程在崩溃后仍然存在
- linux - 我想通过使用 cmake 使用正确的程序检测 clang 来使用 clang/clang++ 进行编译
- c - 如何将数组放置在变量提供的特定内存位置?
- ios - 如何使用一个 var 或 let 从视图控制器到另一个视图控制器
- javascript - jQuery在加载时保持选定的内容
- python-multiprocessing - 使用大型 HDF5 文件进行多处理
- amazon-web-services - AWS SES,使用未经验证的“发件人”发送邮件
- go - 用于使用 SDRS 创建 vApp 虚拟机的 vSphere API