自定义发布类型,保存多个复选框

时间:2012-07-24 作者:dcolumbus

对于自定义帖子类型,我正在拉入另一个自定义帖子类型的列表,我需要选择这些类型来保存。。。

<input type="checkbox" name="32"> My CPT <br>
<input type="checkbox" name="41"> My CPT 2 <br>
<input type="checkbox" name="42"> My CPT 3 <br>
<input type="checkbox" name="43"> My CPT 4
保存单个输入很容易,但如何保存多个复选框呢?

update_post_meta( $post->ID, \'mycpt\', $_POST[\'myinput\'] );

2 个回复
最合适的回答,由SO网友:Cristian 整理而成

您需要将它们保存为数组,而当前HTML的格式不正确。

<label for="my-cpt-32">
    <input type="checkbox" name="cpt_ids[]" value="32" id="my-cpt-32" />
    My CPT #32
</label>
<label for="my-cpt-41">
    <input type="checkbox" name="cpt_ids[]" value="41" id="my-cpt-41" />
    My CPT #41
</label>
<label for="my-cpt-43">
    <input type="checkbox" name="cpt_ids[]" value="42" id="my-cpt-43" />
    My CPT #43
</label>
当这个get的$\\u POST\'ed时,您将有一个检查值数组,请确保检查它是否为“set”,例如。isset( $_POST[\'cpt_ids\'] ).

如果您勾选41(&;43您将得到如下数组:

array(
    [0] => 41,
    [1] => 43
)
可用于保存在自定义字段或辅助表等中。

我希望这有帮助!

SO网友:nvwd

update\\u post\\u meta()的第三个参数可以是数组。将复选框的name属性更改为类似“myCPT[]”的内容,并添加value属性:

<input type="checkbox" name="myCPT[]" value="32"> My CPT <br>
<input type="checkbox" name="myCPT[]" value="41"> My CPT 2 <br>
<input type="checkbox" name="myCPT[]" value="42"> My CPT 3 <br>
<input type="checkbox" name="myCPT[]" value="43"> My CPT 4
将允许您以数组形式获取所有选定值。

提交表单时,php将创建所选值的数组。然后可以使用$\\u POST[\'myCPT\']访问该数组。

结束

相关推荐

为什么$INPUT(设置API)可能是空的?

我试图成为一个好的主题生成器,并通过设置API传递所有设置,但在清理回调函数中遇到了一些困难。问题的核心是:默认情况下传入的$输入变量为空。我的$\\u POST[选项组]进展顺利(它拥有我期望在$input中看到的所有内容),但是,同样,$input是空的。我从哪里开始调试这个呢?EDIT 1作为对Chip的回应,以下是我的观点(显然是存根):function lblg_sanitize_options( $input ){ global $lblg_shortname, $lblg_defau