首页 > 解决方案 > 从动态表单提交值,使用数组

问题描述

我一直在尝试创建一个动态的待办事项模板列表,其中包含预先分配的项目、描述等。这个想法是从一个会不时更改的表中提取一个模板列表。从那里,用户将从模板任务列表中取消选中他们不需要插入到另一个列表或“表”中的待办事项。


| 示例 |

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,或者它只是回显“数组”。在这一点上,我觉得自己很愚蠢。

对此的任何帮助将不胜感激。谢谢!

标签: phpsqlarraysforms

解决方案


我最终得到了与此类似的代码。

$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]; }}

推荐阅读