所以我有3个表doc_list,cat_list和cat_doc_link_table我已经建立了一个带有WYSIWYG帖子创建者的管理面板,想法是当你想要创建一个新帖子时我列出了你可以分配它的类别: / p>
<?php
require_once '../../db_con.php';
try{
$results = $dbh->query("SELECT * FROM cat_list");
}catch(Exception $e) {
echo $e->getMessage();
die();
}
$category = $results->fetchAll(PDO::FETCH_ASSOC);
?>
<label><input type="checkbox" name="" class="selectall"/> Select all</label>
<div id="checkboxlist" >
<?php
foreach($category as $cat){
?>
<input type="checkbox" value="<?php echo $cat["cat_id"]; ?>" name="cat_no[]" id="box1"> <?php echo $cat["cat_title"]; ?></a><br>
<?php
}
?>
然后是其余的输入字段。
它将在doc_list中发布并按预期添加一个新行,但在连接表中,我希望它获取doc的值和cat的值并将它们结合起来,它不会发布到该表中 - 我已经完成了一个var转储,它肯定知道我从复选框中选择哪些类别,但是不会发布到该连接表中?
$sql = "INSERT INTO `cat_doc_link_table`(`link_cat_id`, `link_doc_id`) VALUES";
$values = "";
$params = [];
foreach($_POST["cat_no"] as $cat)
var_dump($cat);
{
$values.= "(?, ?), ";
$params[] = $cat["cat_id"];
$params[] = $docId;
}
$values = substr($values, 0, -2);
$sql.= $values;
$query = $dbh->prepare($sql);
$query->execute($params);
if ($dbh->query($sql)) {
}else{}
$dbh = null;
}catch(PDOException $e)
{
header ('Location: ../list_doc.php?success=1');
}
}
}
答案 0 :(得分:2)
要访问所选类别,您应该只使用$ cat,而不是$ cat [“cat_id”]
...
foreach($_POST["cat_no"] as $cat)
{
var_dump($cat); //
$values.= "(?, ?), ";
$params[] = $cat; // correct here
$params[] = $docId;
}
...