【问题标题】:Submit values from an Dynamic Form, Using Arrays从动态表单提交值,使用数组
【发布时间】:2019-07-12 21:51:58
【问题描述】:

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


|示例 |

???? TaskName = "做作业" TaskDescription = "在家做功课" AssignedTo = "Greg"

???? TaskName = "锻炼" TaskDescription = "去健身房" AssignedTo = "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,或者它只是回显“数组”。在这一点上,我觉得自己很愚蠢。

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

【问题讨论】:

  • 您的代码在哪里使用$_POST['id']?这是一个数组,你需要遍历它。
  • $name$desc$assigned 都是表中的同一列。这似乎不对。
  • @Barmar 好球!当我将其格式化为堆栈时,我没有看到这一点。刚编辑过。我知道我必须使用 $_POST,但不确定如何进行循环并分配值。我应该使用“While”还是“Foreach”?
  • foreach ($_POST['id'] as $id)
  • 我建议您不要将所有列都放在复选框值中,而是将行的主键放入。在处理表单时,todos 表应包含指向plan_tasks 的外键,而不是重复列。

标签: php sql arrays forms


【解决方案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]; }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多