2013-08-29 3 views
2

Я нашел этот код и просто задался вопросом, как вставить новое поле ввода с другим именем и значением.Добавить новый поле ввода

Это текущий код у меня есть: [Изменено]

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 пользователя после того, как установка будет сохранена.

Моя проблема заключается в том, как я буду иметь возможность вставить новое поле ввода для Адресuser_loc рядом с ID пользователя поле так, что когда я ввожу новый ID пользователя и Расположение будет генерировать 2 новый вход поле для ID пользователя и Местоположение.

код Я хотел бы добавить показывает что-то вроде этого:

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"> 

ответ

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 
); 
+0

Хорошо, я думаю, что сейчас я получаю эту идею. Я редактировал код выше, и новое поле ввода для местоположения теперь отображается, но значение в ID пользователя отображает значение местоположения. :( –

+0

Посмотрите исходный код страницы и разместите соответствующий код здесь. – jeff

+0

Я нахожусь в администраторе виджета, и это то, что показано в исходном коде '

\t
New UserUser ID
Location
\t
\t

Смежные вопросы