【发布时间】:2015-04-11 07:50:25
【问题描述】:
我正在尝试使用多个值初始化“cat”变量(以创建一个 php 数组)。问题是我每次都得到最后一个值。
因此,我在我的 html 代码中将 name='cat' 替换为 name='cat[]' 但它确实有效。
现在我有以下干净的代码
开始代码: PHP 代码
<?php
$args = array( 'taxonomy' => APP_TAX_CAT, 'selected' => $field['cat'], 'hierarchical' => 1, 'class' => 'text required', 'show_option_none' => __( '-- Select One --', APP_TD ), 'hide_empty' => 0, 'echo' => 0 );
$select = wp_dropdown_categories( $args );
$select = preg_replace('"-1"', "", $select); // remove the -1 for the "select one" option so jquery validation works
echo $select;
?>
我把它改成这样:
PHP 代码
<?php
$args = array( 'taxonomy' => APP_TAX_CAT, 'selected' => $field['cat'], 'hierarchical' => 1, 'class' => 'text required', 'show_option_none' => __( '-- Select One --', APP_TD ), 'hide_empty' => 0, 'echo' => 0 );
$select = wp_dropdown_categories( $args );
$select = str_replace('id=', 'multiple="multiple" id=', $select);
if (is_array($taxonomy_default)) {
foreach ($taxonomy_default as $key => $post_term) {
$select = str_replace(' value="' . $post_term . '"', ' value="' . $post_term . '" selected="selected"', $select);
}
} else {
$select = str_replace(' value="' . $taxonomy_default . '"', ' value="' . $taxonomy_default . '" selected="selected"', $select);
}
$select = preg_replace('"-1"', "", $select); // remove the -1 for the "select one" option so jquery validation works
echo $select;
?>
HTML 代码
<select name='cat' multiple="multiple" id='cat' class='text required'>
<option value=''>– Select One –</option>
<option class="level-0" value="2">something1</option>
<option class="level-0" value="3">something2</option>
<option class="level-0" value="4">something3</option>
<option class="level-0" value="5">something4</option>
</select>
另外,我可以从该代码处理“猫”分类:
$fields = array(
'post_title',
'cat',
'tags_input'
);
// match the field names with the posted values
// this process is to prevent unexpected field values from being passed in
foreach( $fields as $field ) {
$posted[ $field ] = isset( $_POST[ $field ] ) ? appthemes_clean( $_POST[ $field ] ) : '';
}
if ( $posted['cat'] > 0 )
$post_into_cats[] = get_term_by('id', $posted['cat'], APP_TAX_CAT)->slug;
我用str_replace 做了一些替换,但效果不佳。
HTML 代码:
<select name='cat[]' multiple="multiple" id='cat[]' class='text required'>
<option value=''>– Select One –</option>
<option class="level-0" value="2">something1</option>
<option class="level-0" value="3">something2</option>
<option class="level-0" value="4">something3</option>
<option class="level-0" value="5">something4</option>
</select>
【问题讨论】: