我有一个自定义的metabox,它可以动态地将字段添加到表单中
我被保存部分卡住了。
以下是添加字段的方式:
<tr>
<td valign="top">
<label for="brands" class="prfx-row-title"><?php _e( \'Merken:\', \'prfx-textdomain\' )?></label>
</td>
<td>
<script type="text/javascript">
jQuery(document).ready(function($){
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_brand"); //Fields wrapper
var add_button = $(".add_field_button_brand"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append(\'<div><input type="text" name="brand[]" id="brand[]"/><a href="#" class="remove_field_brand">Verwijderen</a></div>\'); //add input box
}
});
$(wrapper).on("click",".remove_field_brand", function(e){ //user click on remove text
e.preventDefault(); $(this).parent(\'div\').remove(); x--;
})
});
</script>
<div class="input_fields_brand">
<button class="add_field_button_brand">Toevoegen</button>
<div><input type="text" name="brand[]" id="brand[]"></div>
</div>
</td>
</tr>
这是可行的。我想加载数组中的所有数据
brands[]
下面是我在保存部分所做的:
if( isset( $_POST[ \'brand[]\' ] ) ) {
update_post_meta( $post_id, \'brand[]\', sanitize_text_field( $_POST[ \'brand[]\' ] ) );
}
我将其用于所有其他字段,并将其正确保存到数据库中。不知道我错过了什么。
希望其他人也这样做。
EDIT
好的,这样就行了。我知道有一个后续问题:-)
我需要将数据输出到输入字段。用户必须能够更改先前填写的字段。因此,我做了以下工作:
<?php
$postid = get_the_ID();
$brands = get_post_meta( $postid, \'brand\' );
$arrlength = count($brands);
echo \'<div class="input_fields_brand">\';
echo \'<button class="add_field_button_brand">Toevoegen</button>\';
for($x = 0; $x <= $arrlength; $x++)
{
echo \'<div><input type="text" name="brand[]" id="brand[]" value="\'.$brands[0][$x].\'"></div>\';
}
echo \'</div>\';
?>
这将显示数据库中的数据,并使用以下内容添加新数据:
var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append(\'<div><input type="text" name="brand[]" id="brand[]"/><a href="#" class="remove_field_brand">Verwijderen</a></div>\'); //add input box
}
});
这会添加字段,但不会保存值。
有什么想法吗?
(仍需处理id字段)