Задать вопрос

Как вставить в массив из данных в?

Есть поле ввода данных в админке WP.
Установлены custom_post_types. Для одного поля выбран вид "чекбокс", куда вбивается размер обуви. После чего он выводится в -
<li class="offer__info-listitem">Размер: <span><?php the_field('size'); ?></span><span><?php the_field('size_2'); ?></span></li>


Что выглядит на выходе как -
<li class="offer__info-listitem">Размер: <span>41, 42, 43, 44</span></li>


Требуется создать <sеlect>, в котором каждый тэг <оption> будет равен одному значению из <spаn> выше.
<select>
  <option>41</option>
  <option>42</option>
  <option>43</option>
  <option>44</option>
</select>


Как осуществить подобное?

UPDATE.
Варианты участников Выше - рабочие. В моем случае была выбрана другая структура и, соответственно, другое решение.

Вот так получался select для кастомного поля из админки WP.
<?php
            $values = get_field('size');
            if ($values) {
                echo '<select id="select" onchange="populateField(this);">';

                foreach ($values as $value) {
                    echo '<option value=' . $value . ' selected="selected">' . $value . '</option>';
                }
				echo '<option selected="selected">Выберите размер</option>';
                echo '</select>';
            }
        ?>


И вот так он забирался -
function populateField(ele) {
  $('#size').attr('data-size', $(ele).children("option:selected").text())
}
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
@Sashqa
const arr = document.querySelector('span').innerText.split(',')
const select = document.getElementById('select');
arr.forEach(item => {
  const option = document.createElement('option');
  select.appendChild(option)
  option.setAttribute('value', item)
  option.innerText = item
})
Ответ написан
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
$vals = get_the_field( 'size' );
	$vals_args = explode( ',', preg_replace( '/\s+/', '', $vals ) );
	if ( !empty( $vals_args ) ) {
		$options = '';
		foreach ( $vals_args as $one_val ) {
			$options .= sprintf( '<option value="%1$s">%1$s</option>', $one_val );
		}

		printf( '<select name="blablabla">%s</select>', $options );
	}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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