我有一个前端表单提交到我的自定义帖子类型和复选框。
<input type="checkbox" name="_my_checkbox[]" value="Yes"/> Yes
<input type="checkbox" name="_my_checkbox[]" value="No"/> No
<input type="checkbox" name="_my_checkbox[]" value="Maybe"/> Maybe
之后我把它保存为post meta。 然后我需要管理员处理这些帖子和值。据我所知,只有完成保存和操作一个值。我猜问题是在数组中的某个地方。 这是显示元框的函数的一部分。
$get_my_meta = get_post_meta($post->ID, 'my_meta', true);
$get_my_meta_data = array('Yes','No','Maybe');
foreach ($get_my_meta_data as $key => $value) { ?>
<input type="checkbox" name="_admin_my_checkbox[]" value="<?php echo $value;?>"<?php if($value == $get_my_meta){echo 'checked';} ?> /><?php echo $value;
}`
然后是保存功能
if($_POST['_admin_my_checkbox']) {
$my_checkbox_updater = $_POST['_admin_my_checkbox'];
update_post_meta($post_id, 'my_meta', $my_checkbox_updater);
}
在这种情况下,当我检查一些复选框并使用print_r
时,值会按预期保存。我想这个问题在foreach
循环内,但不知道可能是什么。
答案 0 :(得分:0)
快速编辑。找到解决方案in_array()
函数可以完美地完成工作。
foreach ($get_my_meta_data as $key => $value) { ?>
<input type="checkbox" name="_admin_my_checkbox[]" value="<?php echo $value;?>"<?php if(in_array($value,$get_my_meta)){echo 'checked';} ?> /><?php echo $value;
}