添加新的输入框

时间:2013-08-29 00:45:50

标签: php wordpress

我找到了这段代码,只是想知道如何插入具有不同名称和值的新输入框。

这是我目前的代码:[已编辑]

public function form( $instance )
{
    $user_id = isset ( $instance['user_id'] ) ? $instance['user_id'] : array();
    $user_id_num = count( $user_id );
    $user_id[ $user_id_num + 1 ] = '';
    $user_loc = isset ( $instance['user_loc'] ) ? $instance['user_loc'] : array();
    $user_loc_num = count( $user_loc );
    $user_loc[ $user_loc_num + 1 ] = '';
    $user_html = array();
    $user_id_counter = 0;
    $user_loc_counter = 0;

    foreach ( $user_id as $name => $value )
    {
        $user_html[] = sprintf(
            'User ID<br/><input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">Location<br/><input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">',
            $this->get_field_name( 'user_id' ),
            $user_id_counter,
            esc_attr( $value ),
            $this->get_field_name( 'user_loc' ),
            $user_loc_counter,
            esc_attr( $value )
        );
        $user_id_counter += 1;
        $user_loc_counter += 1;
    }

    print 'New User' . join( '<br />', $user_id_html );
}

此代码执行的操作是,一旦保存设置,它将自动生成用户ID 的新输入字段。

我的问题是如何在用户ID 字段旁边插入位置 user_loc的新输入字段,以便在我输入新<时strong>用户ID 和位置它将为用户ID 位置生成2个新输入字段。

我想添加的代码显示如下:

Location<br/> <input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">

旁边
User ID<br/><input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">

1 个答案:

答案 0 :(得分:0)

如果你想要它们并排,那么你将不得不将每个包装在一个div中(以保持提示与使用CSS调整的每个输入广告对齐(否则使用表格)。然后你需要调整你的PHP代码:

$user_id_html[] = sprintf(
   '<div>User ID<br/><input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat"></div><div>Location<br/> <input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">',
   $this->get_field_name( 'user_id' ),
   $user_id_counter,
   esc_attr( $value ),
   //--- add the extra parameters for the location
);