仅多选过帐%1值

时间:2019-03-26 作者:Daniel Flippance

在自定义帖子类型编辑表单中,我将一个select标记为multiple,以允许选择多个项目:

<select multiple size="6" name="product_ids">
    <option value="71">First</option>
    <option value="65">Second</option>
    ...
</select>
然后在PHP中,我有一个保存操作来保存结果:

class PromotionPostType {
    public function __construct() {
        ...
        add_action(\'save_post_promotion\', array($this, \'savePromotion\'));
    }

    //========================================================
    // savePromotion
    //========================================================
    public function savePromotion() {
        global $post;
        ...
        if (!is_null($post) && \'promotion\' == get_post_type()) {
            error_log(\'DEBUG REQUEST: \'.json_encode($_REQUEST));
            error_log(\'DEBUG POST: \'.json_encode($_POST));
        }
    }    
}
我运行页面,在多选列表中选择2个项目,然后保存帖子。

查看save方法的调试输出,我发现product_ids 是仅包含一个值的字符串,而不是包含2个值的数组(或序列化数组)。

{
    "ID": 78,
    ...
    "post_ID": "78",
    "post_type": "promotion",
    ...
    "product_ids": "65",
}
为什么product_ids 值不返回两个选定的ID?

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

尝试在select元素的名称后添加方括号:

<select multiple size="6" name="product_ids[]"> 

相关推荐