从一个数组中的html/php表单中获取多个值并对列表值进行内爆?
不是php专家,试图在thsi代码中的下拉列表上应用多选:从一个数组中的html/php表单中获取多个值并对列表值进行内爆?,php,Php,不是php专家,试图在thsi代码中的下拉列表上应用多选: <?php if ( !empty( $categories ) ) : ?> <label for="<?php echo $widget_id; ?>-categories"><?php _e( 'find', 'GeoMashup' ); ?> <select multiple id="<?php echo $widget_id; ?>-categori
<?php if ( !empty( $categories ) ) : ?>
<label for="<?php echo $widget_id; ?>-categories"><?php _e( 'find', 'GeoMashup' ); ?>
<select multiple id="<?php echo $widget_id; ?>-categories" name="map_cat">
<?php foreach ( $categories as $cat ) : ?>
<option value="<?php echo $cat->term_id; ?>"<?php
if ( $widget->get_default_value( $_POST, 'map_cat' ) == $cat->term_id )
echo ' selected="selected"';
?>><?php echo $cat->name; ?></option>
<?php endforeach; ?>
</select>
<?php _e( 'posts', 'GeoMashup' ); ?></label>
您必须将[]
添加到select元素的名称中。除非这样做,否则只会收到最后一个元素(如您所注意到的)。您将收到一个带有[]的数组
i get:Warning:preg_split()希望参数2是字符串,数组以yes给出,因为您将收到一个数组,而不是字符串。这甚至写在我的答案中。我明白了,之后如何从数组中获取值?循环遍历它或使用infrade()生成字符串。是的,因为您的错误行是$array=map\u cat[]代码>这是不正确的。猫的地图什么都不是。您必须通过$\u GET或$\u POST访问表单输入(取决于您对表单使用的方法)。所以它应该是$array=$\u POST['map\u cat']$逗号分隔=内爆(“,”,$array);-echo$逗号分隔代码>。是的,不是。因为[]仅用于通知浏览器将其作为数组发送。