我正在编写一个博客的后端代码,发帖者应该选择帖子的类别。
我不知道下一步该怎么办,我只有这段代码,它可以获得所有复选框(选中)值
php代码
if(isset($_POST['category'])){
$category = $_POST['category'];
foreach ($category as $cat=>$value) {
echo $value;
html代码
<input type="checkbox" name="category[]" value="CategoryA"> CategoryA
<input type="checkbox" name="category[]" value="CategoryB"> CategoryB
<input type="checkbox" name="category[]" value="CategoryC"> CategoryC
我只是想知道如何插入值
最好的方法是创建单独的表来添加类别。
例如:
tid, name, post_id //something you need
然后,每个类别都需要插入一个新行。这里tid是自动增量,name是类别名称,post_id是博客表中的自动增量字段。
因此,您也可以使用LEFT JOIN从子表中获取数据。
另一种方法是序列化数据并插入博客表中的varchar字段
$serializedData = isset($_POST['category']) ? serialize($_POST['category']) : "";
您可以保存以逗号分隔的类别值,如下所示。
$category = is_array($_POST['category']) ? implode(",",$_POST['category']) : '';
echo $category;
没有一种标准的方法可以做到这一点。这取决于您的应用程序以及您希望如何使用这些信息。若它只是显示用户选择了哪些类别,并且不需要单独的检查或逻辑,则可以将获得的值转换为JSON字符串,并将其插入数据库。假设你有A类、B类、C类、D类和E类。如果用户选择类别A和类别D。您的JSON会像这样:
[{"CategoryA":"1"}, {"CategoryB":"0"}, {"CategoryC":"0"}, {"CategoryD":"1"}, {"CategoryE":"0"}]
在上面的JSON字符串中,"0"表示尚未选择类别,而"1"表示已选择类别。或者,如果您有指定数量的类别,并且它们不会经常更改,则只能在用户选择的JSON中添加类别。您不必自己编写这个JSON,只需创建一个具有以下规范的数组即可
$Array['CategoryA'] = 1;
。.
$Array['CategoryE'] = 0;
制作好数组后,只需使用PHP函数json_encode($ArrayToEncode)
和viola!您有一个JSON对象。希望它能回答你的问题。如果您有任何困惑,请随时询问。