Всплывающее меню Multi Select не работает [дублировать]

0
задан darrrr 10 February 2016 в 20:00
поделиться

2 ответа

Часто игнорируется, супер просто.

Атрибут name должен позволять отправлять несколько выборов по $_POST в виде массива. Например:

<select name="my_meta_box_select[]" id="my_meta_box_select" multiple="" style="width:300px; height:400px;">
    <option value="red">Red
    </option>
    <option value="blue">Blue
    </option>
</select>

Обратите внимание на [] в имени: name="my_meta_box_select[]"

Это, наряду с атрибутом multiple, позволит вашей переменной $_POST содержать все выборы как массив. Тем не менее, $_POST['my_meta_box_select'] будет не просто простым значением, а скорее будет массивом всех выборов.

1
ответ дан Nate I 18 August 2018 в 15:33
поделиться
  • 1
    Кажется, он сохраняет его как массив, но когда я делаю это: $ testVar = get_post_meta ($ GLOBALS ['post'] - & gt; ID, 'my_meta_box_select', true); print_r ($ testVar); Он выводит только «Array», если я запускаю foreach через него. Кажется, он сохраняет его как массив, но я не могу получить его элементы каким-то образом. Я не понимаю его с помощью $ testVar = get_post_meta ($ GLOBALS ['post'] - & gt; ID, 'my_meta_box_select', true); – darrrr 11 February 2016 в 10:18
  • 2
    var_dump ($ testVar); дает мне строку (5) «Массив». – darrrr 11 February 2016 в 10:27
  • 3
    Так что, похоже, это только сохранение слова «Массив». вместо значений в массиве, любая идея, как исправить эту проблему? : / – darrrr 11 February 2016 в 10:36
  • 4
    В моем случае это даже не сохранение массива. Мои значения параметров - это просто цифры. Это просто сохранение последнего числа установленных опций. У меня есть [] в конце моего имени, и у меня также есть несколько атрибутов. – Mike Kormendy 26 June 2016 в 14:40

добавление [] в name было правильным, однако мне также понадобилось заменить следующую строку сохранения:

update_post_meta( $post_id, 'my_meta_box_select', esc_attr( $_POST['my_meta_box_select'] ) );

со следующим:

update_post_meta($post_id, 'my_meta_box_select', array_map( 'strip_tags', $_POST['my_meta_box_select'] ) );

Спасибо alot для помощи Nate!

0
ответ дан darrrr 18 August 2018 в 15:33
поделиться
  • 1
    Woo! Рад, что ты заработал! Надеюсь, теперь все здорово :) – Nate I 11 February 2016 в 15:54
Другие вопросы по тегам:

Похожие вопросы: