我已经构建了一个可以创建类别和文档的系统。类别存在于cat_list表中,文档存在于doc_list表中。 doc_list表中有一个名为cat_no的列,它接受一个数组或属于该文档的类别。
newfile.php
<?php
require_once '../../db_con.php';
try{
// Selecting entire row from cat_list table
$results = $dbh->query("SELECT * FROM cat_list");
}catch(Exception $e) {
echo $e->getMessage();
die();
}
$cat = $results->fetchAll(PDO::FETCH_ASSOC);
?>
<form action="actions/newDocAdd.php" method="post" id="rtf" name="">
<input type="text" name="doc_title" id="doc_title" required="required" placeholder="Document Title"/><br />
<?php
foreach($cat as $cat){
echo
'<input type="checkbox" value="" name=""> ' .$cat["cat_title"]. '</a><br>';
}
?>
<br><br>
<textarea name="doc_content" id="doc_content" placeholder="Document Content" style="display: none;"></textarea>
<iframe name="editor" id="editor" style="width:100%; height: 600px;"></iframe>
<br><br>
<input onclick="formsubmit()" type="submit" value="Create Document" name="submit"/>
</form>
我已经从表单中删除了很多,因为有很多JS,因为它是一个WYSIWYG创建者,因此是iframe。但关键区域是我将上面的类别视为复选框,我需要允许它然后在数据库列表中的col_no列中发布一个数字(或者如果单击多个数字的数组)。
以下是发布数据的脚本:
<?
session_start();
session_regenerate_id();
if(!isset($_SESSION['user'])){
header("Location: ../index.php");
exit;
}
if(isset($_POST["submit"])){
include_once'../../config.php';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=dashboardr",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
$sql = "INSERT INTO doc_list (doc_title, doc_content, doc_created, user_id) VALUES ('".$_POST["doc_title"]."','".$_POST["doc_content"]."', NOW(), '".$_SESSION['user']."''".$_POST['cat_no']."' )";
print_r($_POST);
if ($dbh->query($sql)) {
header ('Location: ../docList.php?success=1');
}
else{
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
更新
<?php
foreach($cat as $cat){
echo
'<input type="checkbox" value="$cat["cat_id"]" name="cat_no"> ' .$cat["cat_title"]. '</a><br>';
}
?>
所以我可以让它以#34; 0&#34;的值发布。但我需要它是我发布的ID的一个数组,我在这里做错了什么?