在自定义帖子类型编辑表单中,我将一个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?